Backbone.js 具有主干关系的主干JS嵌套模型
我正在尝试用关系主干实现主干 索赔模式:Backbone.js 具有主干关系的主干JS嵌套模型,backbone.js,backbone-relational,Backbone.js,Backbone Relational,我正在尝试用关系主干实现主干 索赔模式: define(['underscore', 'backbone', 'backbone-relational', 'models/User'], function(_, Backbone, relational, User) { var Claim = Backbone.RelationalModel.extend({ relations: [{ type: Backbone.HasOne, key: 'a_user',
define(['underscore', 'backbone', 'backbone-relational', 'models/User'], function(_, Backbone, relational, User) {
var Claim = Backbone.RelationalModel.extend({
relations: [{
type: Backbone.HasOne,
key: 'a_user',
relatedModel: User
}],
defaults: {
},
initialize: function() {
},
clear: function() {
this.destroy();
this.view.remove();
}
});
return Claim;
});
用户模型是重复的,但未设置任何关系
下面是收集对象:
Object
_byCid: Object
_byId: Object
_callbacks: Object
currentPage: 1
firstPage: 1
information: Object
length: 3
models: Array[3]
0: Object
1: Object
_callbacks: Object
_deferProcessing: false
_escapedAttributes: Object
_isInitialized: true
_pending: Object
_permitsUsed: 0
_previousAttributes: Object
_queue: Object
_relations: Array[1]
_silent: Object
attributes: Object
_deleted: false
_new: false
a_user: Object
_callbacks: Object
_escapedAttributes: Object
_isInitialized: true
_pending: Object
_permitsUsed: 0
_previousAttributes: Object
_queue: Object
_relations: Array[0]
_silent: Object
attributes: Object
_deleted: false
_new: false
already_in_save: false
already_in_validation: false
coll_claims: Array[0]
coll_claims_partial: true
created_at: "2012-12-12 09:00:00"
email: "cloud.strife@test.com"
firstname: "Cloud"
id: 2
lastname: "Strife"
modified_at: "2012-12-12 09:00:00"
modified_columns: Array[0]
start_copy: false
title: "Mr"
validation_failures: Array[0]
virtual_columns: Array[0]
__proto__: Object
changed: Object
cid: "c4"
collection: undefined
id: 2
__proto__: Object
already_in_save: false
already_in_validation: false
created_at: "2012-12-12 09:00:00"
fulfilment: "bank"
id: 2
manual: 0
modified_at: "2012-12-12 09:00:00"
modified_columns: Array[0]
promotion_id: 1
purchase_id: 2
start_copy: false
status: "pending"
user_id: 2
validation_failures: Array[0]
virtual_columns: Array[0]
__proto__: Object
changed: Object
cid: "c3"
collection: Object
id: 2
__proto__: Object
2: Object
length: 3
因此,集合中基本上有3个声明模型,每个声明模型在属性键a_User处有一个嵌套的User模型
该模板如下所示:
<% _.each( claims, function( item ){ %>
<tr>
<td><%= item.get("id") %></td>
<td><%= item.get("promotion_id") %></td>
<td><%= item.get("a_user").get("firstname") %></td>
<td><%= item.get("purchase_id") %></td>
<td></td>
<td><%= item.get("status") %></td>
<td><%= item.get("created_at") %></td>
</tr>
<% }); %>
如果我把它带回item.get(“a_user”),它会显示输出[object]
我只是在学习主干,所以任何指针都是值得赞赏的。您不应该在模板中使用
get
——下划线模板使用JSON,而不是主干模型对象(您使用模板(model.toJSON())
将模型传递给模板),因此应该使用基本点符号对它们进行评估:
<tr>
<td><%= item.id %></td>
<td><%= item.promotion_id %></td>
</tr>
谢谢,我还读到,也许我不应该在模板内循环,而应该在集合视图内循环,并呈现单一模板?null不是我遇到的对象,这与没有正确地从数据库中拖动内容有关。
<tr>
<td><%= item.id %></td>
<td><%= item.promotion_id %></td>
</tr>