2011-12-29 55 views
1

我試圖通過使用面向對象模式,MooTools的結合提供了Knockout.js,以保持我的代碼有點清潔MooTools的類和Knockout.js

我似乎無法得到它的淘汰賽回報工作某些函數(屬性函數,meh?)在數據綁定值時。如果這些值是用javascript檢索的,那麼它的工作原理是正確的。我做了一個快速的jsfiddle所以你可以測試一下:提前

http://jsfiddle.net/tixz/JK2jt/

謝謝!

回答

2

在你現在的結構中,觀察對象是在你的類的原型上創建的。 Knockout並不打算將它們放在原型上(因爲它們保持私有狀態,所以它們不能共享),並且內部函數ko.isObservable因爲它而失敗。這會導致KO中的解包代碼沒有意識到它需要爲您的observables檢索基礎值。

你將不得不寫,如:

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/

+0

是啊,可惜你不能在你的類定義使用'ko.observable' ......這些屬性必須被唯一初始化爲每個實例。 – 2013-05-02 15:18:57