2013-06-12 55 views
0

我知道可以將JSON替換爲described here,但是可以提供自定義的toJS功能嗎?在淘汰賽中覆蓋默認的toJS功能

+1

爲什麼你要覆蓋它?你想實現什麼? – nemesv

+0

讓我知道我的工作是否適合你。如果是這樣,請將其標記爲已接受。清楚地保持未答覆的隊列是很好的。 –

回答

0

是的,這與編寫新功能一樣簡單。

但是,更好的選擇是使用ko.toJSON中的白名單參數。

ko.ToJSON(vm, white-list, spacing)

HTML

<pre data-bind="text: ko.toJSON($root, replacer, 2)"></pre> 

JS

var ViewModel = function() { 
    var self = this; 

    self.name = ko.observable(); 
    self.age = ko.observable(); 
    self.canEatLotsOfPizza = ko.observable(); 
    self.sawTheNewStarTrekMovie = ko.observable(); 
    self.watchesWheelOfFortune = ko.observable(); 

    self.replacer = function(key, value) { 
     if(!key) { 
     delete value.canEatLotsOfPizza; 
     delete value.sawTheNewStarTrekMovie; 
     delete value.watchesWheelOfFortune ; 
     } 

     return value; 
    }; 
}; 

ko.applyBindings(new ViewModel());