2017-01-17 7 views
3

ノックアウトが観察可能変数を開始値にリセットする方法を実装しているかどうか不思議です。たとえば、ノックアウト観測変数を開始値にリセットする

var test = ko.observable("test"); 

test("ciao"); 
test.reset(); 

値は「test」に戻ります。このようなものや、開始値を保存するフィールドが存在しますか?

+0

これをビューモデルに含めて、値を初期化するために新しいインスタンスpersayを作成してください。 – Nkosi

答えて

3

私はextenderを経由して、観察に機能を追加することをお勧めですが、あなたがそうのように、この機能を追加することができますかはわからない:それはに間違って感じている場合は、「

ko.extenders.canReset = function(target, enabled) { 
 
    // If enabled, we assign a reset method bound to target's current value: 
 
    return enabled 
 
    ? Object.assign(target, { reset: target.bind(null, target()) }) 
 
    : target; 
 
}; 
 

 
var myObs = ko.observable(10).extend({ canReset: true }); 
 
myObs.subscribe(console.log.bind(console, "new value:")); 
 

 
myObs(20); 
 
myObs(30); 
 

 
// Reset 
 
myObs.reset();
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

ランダムに "観測可能にメソッドを追加すると、fn-way of adding functionalityを参照することもできます。

+0

私はいつもthis.myvalue = ko.observable(myvalue)this.OriginalmyValue = ko.observable(myvalue)を使用しています。あなたはもっとうまくいった。 –

+0

非常に良い解決策!共有いただきありがとうございます! – Steph8

関連する問題