Ember 数据:无法从模板访问模型数据
Ember Data: Can't access model data from template
所以这几天我一直在苦苦思索。我根本无法让我的模型数据在模板中呈现。没有抛出任何错误,当我在模板中插入 {{model}}
或 {{controller}}
时,我得到了对 DS 和 Ember 对象、<DS.RecordArray:ember411>
和 [=14] 的引用=], 分别.
在 Ember 检查器中查看,“数据”选项卡显示我按族加载的记录,如果我单击对象引用并进入 members/posts 字段,它会加载 members/posts 也...所以检查员至少似乎正确地获取了数据,但模板没有。非常感谢任何帮助。
js/routes/family.js.coffee
App.FamilyRoute = Ember.Route.extend
model: ->
@store.find 'family'
js/templates/family.hbs
<img {{bind-attr src=img}} alt="Profile">
<h1>{{name}} Family</h1>
<p>{{description}}</p>
{{families}}
{{controller}}
js/controllers/family.js.coffee
App.FamilyController = Ember.ObjectController.extend({})
js/models/family.js.coffee
App.Family = DS.Model.extend
name: DS.attr('string')
description: DS.attr('string')
img: DS.attr('string')
members: DS.hasMany('member', {async: true})
posts: DS.hasMany('post', {async: true})
json 来自 API
{
"families": [{
"id": 2,
"name": "Weebleson",
"description": "Bob, Jill, Jane, John and Spot.",
"img": "/images/weebleson.jpg",
"member_ids": [6, 5, 4],
"post_ids": [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80]
}]
}
Ember : 1.8.1
Ember Data : 1.0.0-beta.14.1
Handlebars : 1.0.0
jQuery : 1.11.1
this.store.find
或 @store.find
在 coffeescript 案例中 returns all 商店中的模型。因此,默认情况下,您会为您的模型 返回一个列表。看起来该列表中将有一个家庭。
如果你想在列表中显示它,你可以使用{{#each family in families}}{{family.name}}{{/each}}
要在您的 FamilyRoute
中仅获取某个 ID,您可以使用 @store.find('family', id)
。所以一个例子是 @store.find('family', 2)
。这会达到不同的终点。
如果你想return第一个结果,你可以使用find
returns:
的promise
@store.find('family').then (family) -> family.get('firstObject')
所以这几天我一直在苦苦思索。我根本无法让我的模型数据在模板中呈现。没有抛出任何错误,当我在模板中插入 {{model}}
或 {{controller}}
时,我得到了对 DS 和 Ember 对象、<DS.RecordArray:ember411>
和 [=14] 的引用=], 分别.
在 Ember 检查器中查看,“数据”选项卡显示我按族加载的记录,如果我单击对象引用并进入 members/posts 字段,它会加载 members/posts 也...所以检查员至少似乎正确地获取了数据,但模板没有。非常感谢任何帮助。
js/routes/family.js.coffee
App.FamilyRoute = Ember.Route.extend
model: ->
@store.find 'family'
js/templates/family.hbs
<img {{bind-attr src=img}} alt="Profile">
<h1>{{name}} Family</h1>
<p>{{description}}</p>
{{families}}
{{controller}}
js/controllers/family.js.coffee
App.FamilyController = Ember.ObjectController.extend({})
js/models/family.js.coffee
App.Family = DS.Model.extend
name: DS.attr('string')
description: DS.attr('string')
img: DS.attr('string')
members: DS.hasMany('member', {async: true})
posts: DS.hasMany('post', {async: true})
json 来自 API
{
"families": [{
"id": 2,
"name": "Weebleson",
"description": "Bob, Jill, Jane, John and Spot.",
"img": "/images/weebleson.jpg",
"member_ids": [6, 5, 4],
"post_ids": [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80]
}]
}
Ember : 1.8.1
Ember Data : 1.0.0-beta.14.1
Handlebars : 1.0.0
jQuery : 1.11.1
this.store.find
或 @store.find
在 coffeescript 案例中 returns all 商店中的模型。因此,默认情况下,您会为您的模型 返回一个列表。看起来该列表中将有一个家庭。
如果你想在列表中显示它,你可以使用{{#each family in families}}{{family.name}}{{/each}}
要在您的 FamilyRoute
中仅获取某个 ID,您可以使用 @store.find('family', id)
。所以一个例子是 @store.find('family', 2)
。这会达到不同的终点。
如果你想return第一个结果,你可以使用find
returns:
@store.find('family').then (family) -> family.get('firstObject')