[英]How do I pass a function to a backbone subview
用户选择视图是许多不同视图的共享子视图。 问题是当用户被点击时,每个父视图都需要发生不同的事件。 例如:
有没有办法将处理程序传递给子视图? 下面的代码传递了处理程序,但它在子视图初始化时立即执行。
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
},
...
});
将 function 绑定到父视图,然后将其传递给选项中的子视图似乎可以解决此问题。
let self = this;
let userSelectionView = new ProjectManager.Views.UserSelection({
collection: self.collection,
onResultClick: self.updateUser.bind(self)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.