如何在knockoutjs中为外部var添加值
how to add values to external var in knockoutjs
我需要创建包含从Json对象接收的数据的外部变量(数组)。这个数据数组将用于绑定组合框。
我尝试过的:-
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>
在for循环中,我尝试了不同的方法来为这个var变量赋值。但是我不能把它绑起来。请帮忙。。。。。
编辑:我的完整其他代码
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());
要填充的数据必须是observableArray。在获得数据后,您应该对其进行设置。在你的ViewModel
中,你可以有observableArray,并且options
标签必须绑定到它
在您的ViewModel中类似:
optionsData = ko.ObservableArray;
...
// later you should make your ajax call and fill optionsData observable
并且您的视图必须更改才能绑定到选项数据:
data-bind='options: optionsData
让全局变量进行这些绑定不是一个好的解决方案。
相关文章:
- 控制台返回var不是't定义,但它是
- 调整窗口大小时,可拖动的对象会出现在容器外部
- HTML表单提交时未执行外部函数
- Jade-包含来自外部js文件的var
- 我怎么能用“;var=新的外部面板“;并且只有viewport或Ext.define?(sencha touch 2)
- 从外部javascript文件读取var并将其转换为php变量
- 如何提高可读性?(将 PHP var 传递给外部文件中的 JavaScript)
- 如何从外部文件更改标记为 var 的函数
- 如何设置 var self = this;从函数外部
- 在 Facebook Feed Dialog(js 版本)中使用来自外部 js 脚本的 javascript var
- Angularjs.then函数创建一个var以传递到外部.then
- 从函数外部访问和更改var的值
- 如何在knockoutjs中为外部var添加值
- JSLint-'var未定义'由外部脚本文件引起的错误
- 将Mysql数据添加到外部javascript文件的js var中
- JS的clearartimeout即使在函数外部设置var也无法工作
- JavaScript var外部函数
- 从外部(即定义闭包的作用域)访问闭包内部定义的var
- 在它外部定义的对话框中的 var 返回未定义的 jQuery
- “var”在 npm 中未定义为内部或外部命令