我的视图是Marionette ItemView。我想在模板函数中使用" this" 访问此视图中的其他参数,但我认为它未定义,我不确定原因。
define(['jquery', 'hbs!templates/template', 'backbone'],
function ($, template, Backbone) {
"use strict";
return Backbone.Marionette.ItemView.extend({
name: "Depth",
el: ".card",
template: function(serializedModel){
var self = this; // self is undefined, so I can't reference this.name, which would be Depth
var data = {isDepth: true, cardTitle: self.name, injectHTML: template()};
.... do some stuff ...
return template();
}
});
}
);
答案 0 :(得分:3)
您可以使用templateHelpers访问模板中的自定义变量:
templateHelpers:function(){
return {
card_title: this.name
}
}
答案 1 :(得分:2)
你可以使用下划线的bindAll将模板绑定到你的marionetteItem,只要它被调用就可以查看。如下所示:
Backbone.Marionette.ItemView.extend({
initialize: function(){
_.bindAll(this, 'template');
},
template: function() {
//this refers to the parent object scope.
}
});