我试图将一些模型属性传递给我的下划线视图,但是,由于某些原因我无法找到使其正常工作的正确方法,如果某些方法可以指向正确的方向,我会很感激。< / p>
App.appModel = new App.Models.AppModel({
"user" : data.user,
"acls" : data.acls //acls is an array, which I need to pass to the view
});
App.appLogged = new App.Views.App({
model : App.appModel
});
//My view
App.Views.App = Backbone.View.extend({
render : function() {
template = _.template( $('#Home').html(), {acls : this.model.toJSON }) ;
this.$el.html(template);
}
});
//so In my view... I need a li with each acl
<script type="text/template" id="Home">
<% _.each(acls, function(acl) { %>
<li><%= acl.get(0) %></li>
<% }); %>
</script>
它不会抛出任何错误......它只是不渲染它......
提前致谢。
答案 0 :(得分:1)
在通话toJSON()
?
//My view
App.Views.App = Backbone.View.extend({
render : function() {
template = _.template( $('#Home').html(), {acls : this.model.toJSON() }) ;
this.$el.html(template);
}
});
答案 1 :(得分:1)
更改模板编译行:
//My view
App.Views.App = Backbone.View.extend({
render : function() {
template = _.template( $('#Home').html(), this.model.toJSON()) ;
this.$el.html(template);
}
});
model.toJSON
将生成一个对象,该对象具有与模型属性对应的键。在这种情况下,它已经包含密钥acls
。你正在制作的是
{ acls:{ acls:[], ... } }
您的模板需要的是:
{ acls:[xxxx] }
通常,在渲染中调用console.log(this.model.toJSON())
非常有用,可以查看进入模板的内容。