我试图通过使用MooTools提供的与Knockout.js相结合的OOP模式来保持我的代码更干净一些
当数据绑定值时,我似乎无法让它工作,因为Knockout返回一些函数(属性函数,meh?)。但是,如果使用javascript检索值,则会按预期工作。我做了一个快速的jsFiddle,这样你就可以测试了:
http://jsfiddle.net/tixz/JK2jt/提前感谢!
在当前的结构中,可观察对象是在类的原型上创建的。Knockout并不打算将它们放在原型上(它们不能被共享,因为它们保持私有状态),因此内部函数ko.isObservable
失败。这导致KO中的展开代码没有意识到它需要检索可观察对象的底层值。
你必须这样写:
var ViewModel = new Class({
initialize: function(secondVal){
this.someProp = ko.observable('Here is my value');
this.anotherProp = ko.observable(secondVal);
}
});
http://jsfiddle.net/rniemeyer/JK2jt/9/