0

我是 emberJS 的新手,并尝试了解如何将数据从 JSON API 放入我的模型。所以我有:

App.Store = DS.Store.extend({
revision: 12,
adapter : DS.RESTAdapter.create({
 url : 'http://eu.battle.net/api/d3/profile/Alucard-2129/?callback=?'
 }) });

App.Profiles = DS.Model.extend({
name: DS.attr("string"),
lastUpdated: DS.attr("string")});


App.ProfilesRoute = Ember.Route.extend({
model: function () {        
    return App.Profiles.find();
}});

但它根本不起作用......我收到错误:

Uncaught TypeError: Object function () { ... } has no method 'find' 

请帮忙...

4

2 回答 2

1

由于 Ember 是一种新事物,因此它发生了很大变化。如果您下载最新的 Ember 版本和 Ember Data beta 插件的副本,您可以这样做:

App.ApplicationAdapter = DS.RESTAdapter.extend({
  host: 'http://eu.battle.net/api/d3/profile/Alucard-2129/?callback=?'
});

App.Profiles = DS.Model.extend({
name: DS.attr("string"),
lastUpdated: DS.attr("string")});

App.ProfilesRoute = Ember.Route.extend({
  model: function() {
    return this.store.find("profile");
  }
});

你在网上找到的所有帮助,都已经过时了。至少,这就是我所经历的。此页面列出了许多可能会派上用场的更改:https ://github.com/emberjs/data/blob/master/TRANSITION.md#host-and-namespace-configuration

祝你好运 ;)

于 2013-10-04T09:49:41.950 回答
0

可能您正在使用 ember-data 版本1.0.0-beta。而且您的代码来自旧版本。现在,App.Profiles.find();您需要使用store.find('profiles');.

此处描述了从旧版本过渡到 1.0.0-beta 的完整描述

App.ApplicationAdapter = DS.RESTAdapter.extend({
  host: 'http://eu.battle.net/api/d3/profile/Alucard-2129/?callback=?'
});

App.Profiles = DS.Model.extend({
  name: DS.attr("string"),
  lastUpdated: DS.attr("string")
});

App.ProfilesRoute = Ember.Route.extend({
  model: function() {
    return this.store.find("profiles");
  }
});

我希望它有帮助

于 2013-10-04T19:12:33.830 回答