我正在使用Backbone Boilerplate构建应用程序,并且在使下划线模板变量起作用时遇到一些麻烦。我有一个名为Goal的资源。我的目标视图的渲染功能如下所示:
render: function(done) {
var view = this;
namespace.fetchTemplate(this.template, function(tmpl) {
view.el.innerHTML = tmpl();
done(view.el);
});
}
我在另一个视图中调用它,就像这样:
var Goal = namespace.module("goal");
App.View = Backbone.View.extend({
addGoal: function(done) {
var view = new Goal.Views.GoalList({model: Goal.Model});
view.render(function(el) {
$('#goal-list').append(el);
});
}
});
我正在使用本地存储来保存我的数据,并且它被添加得很好。我可以在浏览器中看到它,但出于某种原因,当我加载应用程序并尝试获取现有数据时,我收到此错误:
ReferenceError: Can't find variable: title
标题是我存储的唯一键。这是调用的直接结果:
tmpl();
非常感谢任何想法。
答案 0 :(得分:2)
您的模板正在寻找变量title
,可能就像这个<%- title %>
一样。你需要传递一个像tmpl({ title: 'Some title' })
答案 1 :(得分:0)
事实证明,当我创建视图时,我没有传入模型,这使得无法获取模型数据。一旦我正确地传递了模型,我就可以将数据传递给tmpl,正如@abraham所说的那样。
render: function(done) {
var
view = this,
data = this.model.toJSON();
clam.fetchTemplate(this.template, function(tmpl) {
view.el.innerHTML = tmpl(data);
done(view.el);
});
},