gpt4 book ai didi

javascript - 使用 BackboneJS 从 subview 调用 View 函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:08:12 27 4
gpt4 key购买 nike

我想知道是否可以使用 BackboneJS 从 subview 调用 View 函数。如果是,它是如何工作的?

我想从 subview 调用属于主视图的函数“hello”。

也许如果事件触发...

例子:

var MainView = Backbone.View.extend({

initialize: function() {
this.$template = $(template);
this.subview = new SubView();
this.render();
},

render: function() {
this.$el.html(this.$template);
var element = this.$template.attr('id');
this.subview.setElement('#'+element).render();
},

hello: function() {
alert('Hello');
}

});


var SubView = Backbone.View.extend({

initialize: function() {
this.$template = $(template);
this.render();
},

render: function() {
this.$el.html(this.$template);
//Call view function ' hello '
//parentView.hello();
}

});

谢谢!

最佳答案

您可以将引用从您的父 View 传递到您的 subview :

http://jsfiddle.net/puleos/hecNz/

var MainView = Backbone.View.extend({

initialize: function() {
this.$template = $("<span>foo</span>");
this.subview = new SubView({parent: this});
this.render();
},

render: function() {
this.$el.html(this.$template);
var element = this.$template.attr('id');
this.subview.setElement('#'+element).render();
},

hello: function() {
alert('Hello');
}

});


var SubView = Backbone.View.extend({

initialize: function(options) {
this.$template = $("<span>bar</span>");
this.parent = options.parent;
this.render();
},

render: function() {
this.$el.html(this.$template);
this.parent.hello();
}

});

var mainView = new MainView();

console.log(mainView);

关于javascript - 使用 BackboneJS 从 subview 调用 View 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com