2016-09-07 13 views
0

次のように私は剣道Obervableを持っている:剣道観察可能な変化イベント

var ViewModel = kendo.observable({ 
    ID: 1, 
    TITLE: "SomeValue", 
}); 

をし、次のように私はこれを結合した:

kendo.bind($(".bind-view"), ViewModel); 

は今すぐページ上のボタンがあります。クリックすると、この変更があるかどうかを確認する必要があります。ViewModel

私は

$(".ClearAnalysisInfo").on('click', function (event) { 
     ViewModel.bind("change", function (e) { 
     //Some code 
     }); 
    }); 

を試してみましたが、しかし、私はそれが変化したか否か、このViewModelにプロパティを取得することはできませんよ。

+0

htmlの外観はどのように表示できますか? – raven

+0

MVVMを使用するオブザーバブルの目的はありませんか?クリック機能をビューモデルにバインドできるときにjqueryを使用してクリックを処理する理由 – JFlox

答えて

1

ObservableObjectのchange eventをボタンのclickハンドラーの中にバインドするのは遅すぎます。 ObservableObjectが作成された直後にそれを行う必要があります。

ハンドブックchangeハンドラの中に、変更されたフィールドに関する情報が表示されます。この情報を使用して、ボタンのclickハンドラーで後で使用できるように、JavaScriptのフラグを立てたり、必要な情報を保存したりします。

var viewModelChanged = false; 

var ViewModel = kendo.observable({ 
    ID: 1, 
    TITLE: "SomeValue", 
}); 

ViewModel.bind("change", function (e) { 
    viewModelChanged = true; 
}); 

$(".ClearAnalysisInfo").on('click', function (event) { 
    if (viewModelChanged) { 
     // ... 
    } 
}); 
関連する問題