我在将新值推入数组时遇到未定义的错误。
HTML:
<select id="temp" data-bind="options:Original"></select>
<select data-bind="options:dynamicaarry"></select>
视图模型:
var ViewModal=function(items) {
this.dynamicaarry=ko.observableArray(items);
this.Original=ko.observableArray(['volvo','saab','mercedes','audi']);
};
ko.applyBindings(new ViewModal(['four']));
$("#temp").change(function() {
this.ViewModal.dynamicaarry.push('six'); //throws undefined error});});
}
是否可以在不使用jquery的情况下处理knockout中的selectedindexchange事件?
答案 0 :(得分:1)
您正尝试在不同的上下文中调用ViewModal。所以,首先,你应该从更改事件处理程序中删除this
,第二个,你不应该使用jQuery更改事件处理程序,你应该使用knockout绑定,而不是:
Html:
<select id="temp" data-bind="options:Original, event: { change: changeOriginal }"></select>
视图模型:
var ViewModal=function(items) {
this.dynamicaarry=ko.observableArray(items);
this.Original=ko.observableArray(['volvo','saab','mercedes','audi']);
this.changeOriginal = function() {
this.ViewModal.dynamicaarry.push('six');
}
};
ko.applyBindings(new ViewModal(['four']));