1

我对 ember js 完全陌生。我已经下载了 ember 的最后一个 rc 2 版本,ember-data.js 12 修订版,并查看了手册并复制了这段代码,以便能够看到对我的服务器的 GET 请求:

App = Ember.Application.create();

App.Router.map(function() {
... some resources...
});

App.Store = DS.Store.extend({
    revision: 12 // Default is the REST Adapter 
});

App.Person = DS.Model.extend({
    firstName: DS.attr('string'),
    lastName: DS.attr('string'),
    birthday: DS.attr('date'),

    fullName: function() {
            return this.get('firstName') + ' ' + this.get('lastName');
    }.property('firstName', 'lastName')
});

var person = App.Person.find(1);

我得到下一个错误:

未捕获的错误:断言失败:您的应用程序没有定义“存储”属性。尝试在模型类上调用“查找”将失败。请提供与 'YourAppName.Store = DS.Store.extend()' 相同的一个

但据我了解,我定义了 Store 属性。也许我错过了一些东西,因为我没有阅读整本手册,但老实说,我看不出有什么问题。当我在这段代码之后得到它时,我会看到/post/1/对我的服务器的请求,这应该是一件了不起的事情,但我仍在努力解决这个错误

4

1 回答 1

3

这是因为 ember 应用程序是异步初始化的。通常,您只需在加载 js 时定义类,可执行代码属于钩子/回调。大多数情况下,您将在您的路线上使用模型挂钩中的模型 find(),但如果您确实需要立即执行此类操作,您可以这样做:

App.then(function() {
  console.log('App has been initialized...');
  var person = App.Person.find(1);
});

如果您想尝试这种方法,请尝试使用基于入门截屏视频的 ember-data 夹具适配器的jsfiddleApp.then()

于 2013-04-03T23:55:57.220 回答