用户选择视图是许多不同视图的共享子视图。问题在于,当用户被单击时,每个父视图都需要发生不同的事件。例如:
- 如果任务视图是父级视图,则单击用户搜索结果将为该用户分配任务
- 如果“项目视图”是父级视图,则单击用户搜索结果将使该用户成为项目的所有者
有没有办法将处理程序传递给子视图?下面的代码传递了处理程序,但在初始化子视图时会立即执行。
ProjectManager.Views.BoardTask = Backbone.View.extend({
...
toggleSelectUser: function () {
let self = this;
let userSelectionView = new ProjectManager.Views.UserSelection({
collection: self.collection,
attributes: {
onResultClick: self.updateUser
}
});
$(".main-container").append(userSelectionView.render().$el);
userSelectionView.position(self.$(".board-task-user-picture"));
},
updateUser: function (user) {
// Update the assigned user of the board task
},
...
});
1条答案
按热度按时间deikduxw1#
将函数绑定到父视图,然后在选项中将其传递给子视图,似乎可以解决这个问题。