Kendo ui KendoUI:困惑于绑定实际上是什么时候';火灾';

Kendo ui KendoUI:困惑于绑定实际上是什么时候';火灾';,kendo-ui,kendo-mvvm,Kendo Ui,Kendo Mvvm,使用KendoUI的MVVM框架,我对javascript中绑定的实际工作方式感到困惑。给定一个视图模型,我尝试了以下方法: var viewModel = new kendo.observable({ Items: [], onUpdateItems: function(e){ console.log('updating items'); } }); viewModel.Items.bind('change', function(e){ viewModel.onUpd

使用KendoUI的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" });

这不会导致函数触发。虽然如果我真的更改了视图中的项目,比如与它交互,它会导致函数启动。这对我来说没有多大意义。

您正在为viewModel.Items绑定更改事件,因此需要在那里触发事件。如果你把电话改成

viewModel.Items.trigger("change");
它将调用
viewModel.onUpdateItems()


更改事件将向上冒泡(例如,从内部ObservableArray到外部ViewModel),但不会以相反的方式。因此,如果您触发视图模型的更改事件,它将不会触发嵌套ObservalArray
项的事件

谢谢,这非常有帮助。剑道的技术支持告诉我,只要把所有东西都绑定到顶层视图模型上……我认为这是个愚蠢的想法。