KendoUI:对绑定实际上“开火”感到困惑

时间:2013-12-07 21:35:28

标签: kendo-ui kendo-mvvm

使用Kendo UI的MVVM框架,我对如何在javascript中连接的绑定实际工作感到困惑。鉴于视图模型,我尝试了以下内容;

var viewModel = new kendo.observable({
   Items: [],
  onUpdateItems: function(e){
     console.log('updating items');
 }
});
viewModel.Items.bind('change', function(e){
  viewModel.onUpdateItems(e);
});

viewModel.trigger("change", { field: "Items" });

这不会导致该功能触发。虽然如果我实际上更改了视图中的项目,比如与它进行交互,它会导致函数触发。这对我来说并没有多大意义。

1 个答案:

答案 0 :(得分:2)

您正在绑定viewModel.Items的更改事件,因此您需要在那里触发事件。如果您将通话更改为

viewModel.Items.trigger("change");

它会调用viewModel.onUpdateItems()

更改事件将向上冒泡(例如,从内部ObservableArray到外部ViewModel),但不是另一种方式。因此,如果您触发视图模型的更改事件,则不会为嵌套的ObservableArray Items触发事件。

相关问题