gpt4 book ai didi

javascript - 当插件事件被触发时,如何从 Backbone.js 中的 View 执行模型的函数?

转载 作者:行者123 更新时间:2023-12-02 19:06:01 28 4
gpt4 key购买 nike

我有下一个代码:

var Contents = Backbone.View.extend({       
events: {
"click #addAll": "addContent"
},
initialize: function() {
_.bindAll(this);
this.model = new ContentCollection();
this.model.on("add", this.contentAdded);
},
addContent: function(event) {
this.model.add({ modelName: "all"});
//Plugin event
$('select').switchify().data('switch').bind('switch:slide', function(e,type){
//Do something

});
},
contentAdded: function(content) {
if (content.view == null) {
var template_name;
switch(content.get("modelName")){
case 'all': template_name = 'home'; break;
}
content.view = new ContentView({
model: content, template: //template
});
$(".box").empty();
content.functionModel();
//render template
}
},
});

当单击按钮(#addAll)时,模型将添加到集合中,然后创建 View ,调用 functionModel 并呈现模板。我想在插件事件完成时执行 funtionModel() ,但调用该函数需要特定模型的 content 。并且该插件在 contentAdded 中不起作用。

最佳答案

我不能 100% 确定我已正确理解您的问题,但我认为您需要在 addContent 方法中获取对 Content 模型的引用。我希望这是正确的。

不要像现在一样允许 collection.add 方法为您创建模型:

this.model.add({ modelName: "all"});

单独初始化模型:

var content = new ContentModel( modelName: "all" });
this.model.add(content);

当您有局部变量 (content) 时,也可以在插件事件处理程序回调的范围内访问它。以下内容应该有效:

addContent: function(event) {
var content = new ContentModel( modelName: "all" });
this.model.add(content);
$('select').switchify().data('switch').bind('switch:slide', function(e,type){
content.functionModel();
});
},

关于javascript - 当插件事件被触发时,如何从 Backbone.js 中的 View 执行模型的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295752/

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