【问题标题】:Ember.js data with associations带有关联的 Ember.js 数据
【发布时间】:2013-01-06 12:30:08
【问题描述】:

我正在尝试使用 ember.js 和 ember-data 的最新主分支。

这里有一些细节:

window.Links = Ember.Application.create();

Links.Store = DS.Store.extend({
  revision: 11,
  adapter: 'DS.RESTAdapter'
});

Links.List = DS.Model.extend({
  urls: DS.hasMany('Links.Url', { embedded: true })
});

Links.Url = DS.Model.extend({
  url: DS.attr('string'),
  list: DS.belongsTo('Links.List')
});

当我在控制台中执行以下操作时:

var list = Links.List.find("test");

API 返回以下内容:

{"list":{"id":"test","urls":[{"id":"44e5aa","url":"http://google.com"}]}}

我能做到:

list.get("id") // => "test"
list.urls // => undefined 

我似乎无法让这些关联发挥作用。我做错了吗?

【问题讨论】:

    标签: javascript ember.js ember-data


    【解决方案1】:

    我想我们很多人都在同一条船上——这与the issue I posted earlier todaythe one I referenced 非常相似。希望这意味着我们很快就会有一个修复或明确的答案!

    您可能想按照 brg 的建议尝试以下方法:

    Links.Store.adapter.serializer.map('Links.List', {
       urls: {embedded: 'load'}
    });
    

    您当然会删除您的内联嵌入式语句。它没有解决我的问题,但它可能对你的情况。

    请注意,嵌入的 belongsTo 关联也存在问题,如记录的here

    【讨论】:

    • 呃。这似乎不起作用,但我明白你的意思。似乎事情在不断变化,文档已经过时了。感谢您的洞察力!
    • @user577808 尝试以下方法 - 它对我有用:window.Links = Ember.Application.create(); App.Adapter = DS.RESTAdapter.extend() App.Adapter.map('Links.List', { urls: {'embedded': 'load'} }); Links.Store = DS.Store.extend({ 修订:11,适配器:App.Adapter.create() }); Links.List = DS.Model.extend({ urls: DS.hasMany('Links.Url') }); Links.Url = DS.Model.extend({ url: DS.attr('string'), list: DS.belongsTo('Links.List') });
    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多