KendoUI: Запутался, когда привязки действительно "срабатывают"
Используя инфраструктуру MVDM пользовательского интерфейса Kendo, я не понимаю, как на самом деле работают привязки, связанные в 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 ответ
Вы связываете событие изменения для viewModel.Items, поэтому вам нужно вызвать событие там. Если вы измените свой звонок на
viewModel.Items.trigger("change");
это позвонит viewModel.onUpdateItems()
,
События изменения будут пузыриться вверх (например, от внутреннего ObservableArray до внешнего ViewModel), но не наоборот. Поэтому, если вы инициируете событие изменения для модели представления, оно не будет запускать событие для вложенного ObservableArray. Items
,