下划线模板不加载模型.% console.log(Model.id) %>它是未定义的
Underscore template does not load the Model.id, on printing the <% console.log(Model.id) %> it comes as undefined
费用。Id在日志
中打印为未定义My Underscore template
<% _.each(expenses, function(expense) { %>
<tr>
<td><%= expense.get('name') %></td>
<td><%= expense.get('amount') %></td>
<td><%= expense.get('category') %></td>
<td><% console.log(expense.id) %></td>
</tr>
<% }); %>
My Backbone View
var ExpenseList = Backbone.View.extend({
el: '.page',
render : function(){
var expenses = new Expenses();
var that = this;
expenses.fetch({
success : function(expenses){
var template = _.template($('#expense-list-template').html(),
{expenses: expenses.models});
that.$el.html(template);
}
});
}
});
服务器响应
[
{
"_id": "53c25827555953000091ab71",
"name": "Shell",
"amount": "$1000",
"category": "Internet"
},
{
"_id": "53c2bfee4bf93700006fb714",
"name": "FC",
"amount": "$432",
"category": "Game"
}
]
您的服务器正在发送_id
属性,而不是id
属性。
最简单的选择是在模型上设置idAttribute
:
var Expense = Backbone.Model.extend({
idAttribute: '_id',
//...
});
var Expenses = Backbone.Collection.extend({
model: Expense,
//...
});
这将为您提供expense.get('_id')
和expense.id
作为相同的东西,模型将将_id
发送回服务器。
您还可以在模型中添加parse
方法来重命名属性,但是当您试图将数据发送回服务器时,这会导致问题。
相关文章:
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Angular2-TypeError:无法读取属性'Id'(Typescript)中未定义的
- 快速会话 无法设置未定义的属性“id”
- JS在隐藏未定义的值后仅从数组中返回第一个id的值
- "无法读取属性'id'未定义的“;解析工厂中声明的数组时
- 在onChange事件中未定义id
- 未捕获的引用错误: 未定义导出 ID
- Angular JS TypeError:无法读取路由上未定义的属性“id”
- 获取 Firebase 推送对象的 ID 未定义
- 当我尝试获取span的父ID时,我得到了未定义的值
- jQuery 可放置元素 id 未定义
- 数据 ID 一直未定义返回
- 当 ID 从 PHP 变量传递时,JavaScript 中的未定义 ID
- DatePicker:无法设置属性'currentDay'当有多个数组id时,为未定义
- querySelector在尝试访问作为元素ID的数值时返回未定义的字符串
- jQuery中显示id未定义时出错
- 无法获取属性'id'的未定义引用或null引用
- FB ID返回为未定义
- getElementByClassName返回'未定义',但它对Id有效
- 未定义ID/No操作Jquery