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 回答