Мне нужно создать внешнюю переменную (массив), которая содержит данные, полученные от объекта Json. этот массив данных будет использоваться для привязки поля со списком.Как добавить значения к внешнему var в knockoutjs
, что я попробовал: -
var data = [
$.ajax({
type: "POST",
url: 'TimeRecord.aspx/ReturnComplexType',
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (arg) {
alert('hello Inside new');
for (var i = 0; i < arg.d.length ; i++) {
"projectCode"=arg.d[i].ProjectCode
//data.push(arg.d[i].ProjectCode)
}
},
error: function (arg) {
}
})
];
HTML код:
<td><select id="Select2" data-bind='options: data, value: selectedProject' style="width: 312px"></select>
я попробовал разные подошел присвоить значения этой переменной вар в течение цикла. но я не смог связать его. пожалуйста, помогите .....
Edit: мой полный другой код
function ViewModel() {
var self = this;
this.CheckIn = ko.observable();
this.CheckOut = ko.observable();
this.Lunch = ko.observable();
this.projectLine = ko.observableArray([new projectsWorked()]);
this.TimeForWork = ko.computed(function() {
return this.CheckIn() ? this.CheckOut() ? parseFloat(this.Lunch()) ? parseFloat(this.CheckOut()) - parseFloat(this.CheckIn()) - parseFloat(this.Lunch()) : parseFloat(this.CheckOut()) - parseFloat(this.CheckIn()) : 0 : 0;
}, this);
this.Rest = ko.observable();
this.RemainHour = ko.computed(function() {
return self.TimeForWork() ? self.Rest() ? self.WorkOnProject() ? parseFloat(self.TimeForWork()) - parseFloat(self.Rest()) - parseFloat(self.WorkOnProject()) : parseFloat(self.TimeForWork()) - parseFloat(self.Rest()) : parseFloat(self.TimeForWork()) : 0
}, this);
this.WorkOnProject = ko.observable();
this.grandTotal = ko.observable();
this.AddLine = function() {
alert('hello Add');
// alert(this.grandTotal());
this.calcTotal();
this.projectLine.push(new projectsWorked());
};
this.removeLine = function (line) {
alert('hello Remove');
self.projectLine.removeLine;
};
};
function projectsWorked() {
var self = this;
this.projectEnable = ko.observable(false);
this.hours = ko.observable();
this.selectedProject = ko.observable();
};
ko.applyBindings(new ViewModel());
Где зов к применению? Вы должны привязать источник данных к своим элементам. – TGH
@TGH я обновил свой вопрос – DevT