Chr*_*ris 9 ember.js ember-data
我正在使用Ember数据并且很难找到get ember来识别来自服务器的JSON响应中的嵌套属性.这是ember-1.0.0-pre.4.js.
目前,我已经设置了与Ember数据修订版11相关的模型
# School Model
App.School = DS.Model.extend
addr: DS.belongsTo('App.Addr')
name: DS.attr 'string'
status: DS.attr 'string'
# Address Model
App.Addr = DS.Model.extend
school: DS.belongsTo 'App.School'
line1: DS.attr 'string'
city: DS.attr 'string'
state: DS.attr 'string'
iso: DS.attr 'string'
Run Code Online (Sandbox Code Playgroud)
这是我服务器的JSON响应:
{"schools":
[{
"_id":"51020261bbc3b8c526000007",
"name":"Willamette",
"status":"p",
"addr":{
"line1":"122 Evergreen Terrace",
"city":"Springfield",
"state":"IL",
"iso":"US"
}
}
]}
Run Code Online (Sandbox Code Playgroud)
我的适配器设置如下:
App.Store = DS.Store.extend
revision: 11
adapter: DS.RESTAdapter.create({
url: "http://localhost:8000/api"
serializer: DS.RESTSerializer.extend
primaryKey: (type) ->
'_id';
})
Run Code Online (Sandbox Code Playgroud)
更新:我试图映射addr属性,如下所示.仍然没有骰子......
DS.RESTAdapter.map 'App.School',
addr: { embedded: 'always'}
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我想做这样的事......
<script type="text/x-handlebars" data-template-name="school">
<h2>School: {{name}}</h2>
<p> Status: {{ status }}</p>
<p> Address: {{ addr.line1 }} {{ addr.city }} </p>
</script>
Run Code Online (Sandbox Code Playgroud)
名称和状态属性渲染正常.但是addr.line1和addr.city是空白的.有没有办法让Ember识别嵌套的addr propeties?
谢谢!
由于您在学校JSON中嵌入了addr JSON,因此您需要在DS.RESTAdapter中设置映射.
DS.RESTAdapter.map 'App.School',
addr: { embedded: 'always' }
Run Code Online (Sandbox Code Playgroud)
嵌入式选项可以有两个值,1)始终,2)加载.
有关详细信息,请参阅Yehuda的答案:https://stackoverflow.com/a/14324532/1409279
| 归档时间: |
|
| 查看次数: |
8490 次 |
| 最近记录: |