【问题标题】:Loading a record into ember-data creates a nearly empty record将记录加载到 ember-data 会创建一个几乎为空的记录
【发布时间】:2012-11-08 13:06:07
【问题描述】:

所以在编写 Ember.js 应用程序时,我无法让最基本的 ember-data 记录工作。使用 Ember.js 和 ember-data 的最新 git 构建,我在 firebug 中运行了这段代码:(使用我从 github 上的 ember-data 指南中学到的知识)

App.store = DS.Store.create({
    revision: 8,
    adapter: DS.RESTAdapter.create({bulkCommit: false, namespace: "api"})
});

App.Test = DS.Model.extend({
    test: DS.attr('string')
});

App.store.load(App.Test, 1, {test: "abc"});

App.store.findById(App.Test, 1);

编辑:mspisars 的回答让我意识到 findById() 不是要使用的函数(尽管它确实具有相同的结果)。这是一个供内部 ember-data 使用的函数。

最后一行返回一个 App.Test 对象,其测试属性设置为“未定义”。我使用 createRecord 创建记录得到了相同的结果(诚然我不记得有什么区别)。

据我所知,这不是 this 问题的重复,尽管症状几乎相同。

感谢您的帮助。

【问题讨论】:

  • 我无法复制这个问题。您使用的是什么版本的 ember-data?

标签: ember.js ember-data


【解决方案1】:

findById 是您创建的方法吗?我在 ember-data master 的任何地方都看不到它! 试试 App.Test.find("1") 或 App.store.find(App.Test, "1")

【讨论】:

  • 看起来 findById 不是正确使用的函数(它是“私有”)。即便如此,其他的还是不行。
【解决方案2】:

我以错误的方式访问存储的数据。加载数据后,我试图获取这样的数据:

t = App.store.find(App.Test, 1);

console.log(t.test); // wrong

返回未定义

我应该这样做:

console.log(t.get('test'));
"abc"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多