在 TypeScript 类中初始化 Knockout observableArray 的正确方法是什么?
我正在做这样的事情:
module ViewModel {
declare var ko;
export class IndexPageViewModel {
agencies: any;
constructor () {
this.agencies = ko.observableArray([]);
}
}
}
var ivm = new ViewModel.IndexPageViewModel();
ivm.agencies.push({name: "name", alias : "alias"});
for (var i = 0; i < ivm.agencies.length; i++){
alert(ivm.agencies[i].name);
}
看起来很简单,但是当我尝试按照指示访问代理属性时,执行会挂起。我错过了什么?
这行是你的错误所在:
agencies[i]
当您访问可观察数组时,它实际上包装在一个函数中,因此您可以像以下方式访问它:
agencies()[i]
也帮自己一个忙,从以下位置下载淘汰赛定义:https://github.com/borisyankov/DefinitelyTyped https://github.com/borisyankov/DefinitelyTyped
然后用类型声明你的属性:
module ViewModel {
export class IndexPageViewModel {
agencies: KnockoutObservableArray;
constructor () {
this.agencies = ko.observableArray([]);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)