如何将变量传递给视图文件中的函数?以下是我在控制器中的调用功能。我已经在代码中的路径中添加了视图文件。
app.region.show(new view({templatePath:'app\view\MyView.tpl'});
这里是我希望变量出现的视图文件。像Backbone中的选项。我能想到的一个丑陋的方法是将变量附加到app对象,但是出于显而易见的原因会讨厌这样做。
define(["app"], function(app) {
require([templatePath], function(someTplFile){
MyView = Backbone.Marionette.ItemView.extend({
template: someTplFile
});
});
return MyView;
});
帮助感谢。
*为pkyeck评论添加编辑**
这不起作用....
contentMain = Backbone.Marionette.ItemView.extend({
initialize: function(values) {
require([values.tplName], function(mainTpl){
this.var1 = mainTpl;
});
},
template: this.var1,
});
答案 0 :(得分:1)
可以在视图的初始化中访问传递给视图的对象。您可以在此处将属性保存到视图中。
这样的事情:
MyView = Backbone.Marionette.ItemView.extend({
initialize: function(values) {
this.templatePath = values.templatePath;
},
anotherFunction : function(){
//this.templatePath can be read here
}
});
app.region.show(new view({templatePath:'app\view\MyView.tpl'});
答案 1 :(得分:0)
我最终得到了以下解决方案......
require(["app\view\MyView.tpl"], function(viewTpl){
app.region.show(new contentView.contentMain({template:viewTpl}));
});
视图文件中的...
MyView = Backbone.Marionette.ItemView.extend({
initialize: function(values) {
this.var1 = values.template;
},
template: this.var1
});
感谢您的帮助