gpt4 book ai didi

ember.js - 无法使用 ember.js 和 ember-data 获取嵌入的对象属性

转载 作者:行者123 更新时间:2023-12-02 19:40:40 27 4
gpt4 key购买 nike

我是 ember 新手,并尝试了解它是如何工作的。

我已经定义了一个 store,其中以fixturesAdapter 作为适配器(rev 7)。我定义了两个模型:

App.Tag = DS.Model.extend({
name: DS.attr('string'),
item: DS.belongsTo('App.Item')
});

和:

App.Item = DS.Model.extend({
name: DS.attr('string'),
tags: DS.hasMany(App.Tag, { embedded:true }),
})

我还填充了它们相关的装置,最后还有一个 Controller :

App.itemsController = Ember.ArrayController.create({
content: App.store.findAll(App.Item)
});

我在 App.Item 模型中定义了一个函数:

tagline: function(){
return this.get('tags').toArray().map(function(tag){
return tag.get('name');
}).join(',');
}.property('tags.@each.isLoaded')

这是相应的jsfiddle:http://jsfiddle.net/K286Q/29/

我的问题是:

  • 我做错了什么?
  • 为什么它看到与第一个项目关联的多个标签,但无法获取它们的名称?

最佳答案

您在当前版本的 ember-data 中遇到了一些重大更改。

首先是,自 ember-data 版本 6 起,ID 被字符串标准化,并且必须在装置中表示为字符串。请注意,REST 适配器将转换数字/字符串,但夹具适配器不执行任何转换。这是一个常见的混淆来源(请参阅 the previous question )。

第二个是 ember-data 暂时删除了对嵌入数据对象的支持。我非常确定该功能将以比在属性中支持 {embedded: true} 更好的方式重新引入。 IMO,嵌入更多的是适配器问题,并不真正属于模型的定义。

我调整了你的装置并让你的示例在这里工作:http://jsfiddle.net/dgeb/zHz4Y/

关于ember.js - 无法使用 ember.js 和 ember-data 获取嵌入的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13296812/

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