是否可以仅使用Knockout查看/使用自定义类的其他对象? 我试图用不同的数据找到一种打开淘汰赛的方法,但总是采用相同的结构。
// I have an Event class which looks like that:
function cEvent(id){
this.id = id;
}
// I keep an array of instances of that class in something like:
var arr = [new cEvent(1), new cEvent(2)]
在html页面上我有:
Event ID: <span data-bind="text: id"></span>
我创建了一个类似访问器的类来使用Knockout
从特定事件中获取数据 cEvent2 = function cEvent2(baseEvent) {
this.id = ko.computed(function(){
return baseEvent.id;
});
}
当我使用 ko.applyBindings(arr [0]); 时,它会起作用但如果我想加载另一个&#34;模型&#34;没有清理节点并在页面上重新应用淘汰赛?
我想要像 ko.applyBindings(arr [1]); 那样根据我想要的数据更新界面。
当然,实际上cEvent类要复杂得多,但我试图看看我们是否能够在没有直接扩展cEvent实例的情况下完成某些事情。
也许我只是想做错事,这不是淘汰赛想要工作的方式吗?我知道在我的情况下,我希望淘汰赛能成为一名简单的班级读者。即使它可以做得更多。
任何提示都会非常感激。
答案 0 :(得分:2)
这就是我要做的事情:
function cEvent(id){
this.id = id;
}
function myViewModel() {
var arr = [new cEvent(1), new cEvent(2)]
this.selectedEvent = ko.observable(arr[0]);
}
ko.applyBindings(new myViewModel());
这样,如果你想绑定到selectedEvent.id,当你想要查看不同的事件时,你需要做的就是更新selectedEvent属性,所有的绑定都会自动更新。