2

knockout.jsライブラリを使用しています。ブール値があり、それを Observable として保存しています。しかし、ドロップダウンで選択したインデックス変更イベントで値を取得しようとすると。それは私にこのエラーを与えます:

Object function viewModel(model) {
this.stocks = ko.observableArray(model.stocks); this.isGeneral = ko.observable(model.generalStockEnabled); } has no method 'isGeneral'

モデルを登録するためのコードは次のとおりです。

 function viewModel(model) {      
        this.stocks = ko.observableArray(model.stocks);
        this.isGeneral = ko.observable(model.generalStockEnabled);
    }

これが私のドロップダウンリストイベントです:

 $('#enableGeneratInventorydl').change(function () {
            if ($('#enableGeneratInventorydl :selected').val() === "True")
            {
                alert(viewModel.isGeneral())

            }
            else
            {

            }
        });

ページの初期化でこれを呼び出しています

 ko.applyBindings(new viewModel(data));

データ オブジェクトにはブール値 generalStockEnabled があります。

何か案が ?

4

1 に答える 1

1

グローバル変数viewModelを作成することができ、これはうまくいきます:

function viewModel(model) 
{      
   this.stocks = ko.observableArray(model.stocks);
   this.isGeneral = ko.observable(model.generalStockEnabled);
}
window.myViewModel = new viewModel(data);  
//...  
ko.applyBindings(window.myViewModel);  

myViewModel.isGeneral()どこでも 通話できるようになりました

$('#enableGeneratInventorydl').change(function () 
      {
        if ($('#enableGeneratInventorydl :selected').val() === "True")
        {
            alert(myViewModel.isGeneral())
// ...
于 2013-11-07T09:27:30.160 に答える