gpt4 book ai didi

javascript - 主干 - 无法读取未定义的属性 'get'

转载 作者:行者123 更新时间:2023-11-30 17:25:34 25 4
gpt4 key购买 nike

这是我第一次真正尝试使用服务器端点创建 Backbone 应用程序,我发现自己遇到了一些障碍。

我的 html 中有一个下划线模板:

    <tbody>
<% _.each(users, function(user) { %>
<tr>
<td><% user.get('firstname') %></td>
<td><% user.get('lastname') %></td>
<td><% user.get('age') %></td>
<td></td>
</tr>
<% }); %>
</tbody>

这是我的模型/ View /集合:

var Users = Backbone.Collection.extend({
url: '/UMA.Service/Service1.svc/',
Model: User
});

var User = Backbone.Model.extend({
defaults: {
"firstname": "",
"lastname": "",
"age": null
}
});

var UserList = Backbone.View.extend({
el: '.page',
render: function() {
console.log(this.collection.toJSON());
var template = _.template($('#user-list-template').html(), {users: this.collection.model});
this.$el.html(template);

},
initialize: function() {
var that = this;
this.collection = new Users();
this.collection.fetch({
success: function(User) {
that.render();
}
});

}
});

我不太确定我哪里搞砸了。我认为这可能必须是我在我的收藏或模型中调用某些东西的方式,但我已经找了一段时间但找不到它(如果有的话)。有人能帮我吗?

我的控制台在 View 中的渲染函数中登录,它返回了我的所有数据,所以我看不出为什么这不起作用。有人有什么想法吗?

最佳答案

代替:

_.each(users, function(user) {...

尝试做:

users.each(function(user) { ...

Backbone 将各种下划线方法“代理”到 backbone 对象(在本例中为 Collection 对象)。有关更多信息,请查看:http://backbonejs.org/#Collection-Underscore-Methods并向下滚动到一些示例。

编辑:

@Bojangels 是对的。您也不想将 this.collection.model 传递到模板中。您只想传递集合(在本例中)。该集合“包含”您关心的模型。 Collection.model 是集合的一个属性,表示集合包含的模型类型,而不是模型本身的特定实例。

正如@Tallmaris 在下面的评论中所述,缺少的一 block 拼图是使用 <%=输入值:

  <td><%= user.get('firstname') %></td>

关于javascript - 主干 - 无法读取未定义的属性 'get',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368324/

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