5

我正在尝试使用 Ember 和 Ember/Data 来显示从 REST API 返回的简单 JSON。
这是我的js:

window.ManageClients = Em.Application.create();

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

ManageClients.Client = DS.Model.extend({
  url: '/clients',
  name: DS.attr('string'),
  slug: DS.attr('string'),
  programs: DS.attrArray('string'),
  selfserve: DS.attrArray('string')
});

ManageClients.Clients = ManageClients.store.findAll(ManageClients.Client);

ManageClients.ClientsView = Em.View.create({
  templateName: 'client-template'
});

ManageClients.ClientsView.appendTo('#ManageClients');

我的模板:

<div id="ManageClients">
    <script type="text/x-handlebars" data-template-name="client-template">
        <ul>
            {{#each ManageClients.Clients}}
            <li>
                {{#if isLoaded}}
                    Client:{{name}}
                {{else}}
                    Loading...
                {{/if}}
            </li>
            {{/each}}
        </ul>
    </script>
</div>
<script language="javascript" src="/js/manageClients.js"></script>

错误:

Uncaught TypeError: Object ManageClients.Client has no method '_create' ember-data.js:1811
DS.Store.Ember.Object.extend.materializeRecord ember-data.js:1811
DS.Store.Ember.Object.extend.findByClientId ember-data.js:1204
DS.RecordArray.Ember.ArrayProxy.extend.objectAtContent ember-data.js:45
Ember.wrap.newFunc ember.js:949
Ember.ArrayProxy.Ember.Object.extend.objectAt ember.js:9204
Ember.wrap.newFunc ember.js:949
Ember.Array.Ember.Mixin.create.arrayContentDidChange ember.js:6946
Ember.ArrayProxy.Ember.Object.extend.arrangedContentArrayDidChange ember.js:9227
invokeAction ember.js:3174
iterateSet ember.js:3156
sendEvent ember.js:3273
Ember.Array.Ember.Mixin.create.arrayContentDidChange ember.js:6941
Ember.Mixin.create.replace ember.js:9616
Ember.MutableArray.Ember.Mixin.create.insertAt ember.js:7410
Ember.MutableArray.Ember.Mixin.create.pushObject ember.js:7458
DS.Store.Ember.Object.extend.updateRecordArray ember-data.js:1618
DS.Store.Ember.Object.extend.updateRecordArrays.manyArrays ember-data.js:1586
DS.Store.Ember.Object.extend.updateRecordArrays ember-data.js:1584
DS.Store.Ember.Object.extend.load ember-data.js:1744
DS.Store.Ember.Object.extend.loadMany ember-data.js:1763
DS.RESTAdapter.DS.Adapter.extend.findAll.ajax.success ember-data.js:4580
f.Callbacks.o jquery-1.7.2.min.js:2
f.Callbacks.p.fireWith jquery-1.7.2.min.js:2
w jquery-1.7.2.min.js:4
f.support.ajax.f.ajaxTransport.send.d

和:

Uncaught TypeError: Object ManageClients.Client has no method '_create' ember-data.js:1811
DS.Store.Ember.Object.extend.materializeRecord ember-data.js:1811
DS.Store.Ember.Object.extend.findByClientId ember-data.js:1204
DS.RecordArray.Ember.ArrayProxy.extend.objectAtContent ember-data.js:45
Ember.wrap.newFunc ember.js:949
Ember.ArrayProxy.Ember.Object.extend.objectAt ember.js:9204
Ember.wrap.newFunc ember.js:949
Ember.CollectionView.Ember.ContainerView.extend.arrayDidChange ember.js:14651
Ember.CollectionView.Ember.ContainerView.extend._contentDidChange ember.js:14582
Ember.CollectionView.Ember.ContainerView.extend.init ember.js:14553
Ember.wrap.newFunc ember.js:949
Ember._Metamorph.Ember.Mixin.create.init ember.js:18038
Ember.wrap.newFunc ember.js:949
Class ember.js:8259
Ember.Mixin.create.create ember.js:8398
Ember.View.Ember.Object.extend.createChildView ember.js:13320
Ember.View.states.inBuffer.appendChild ember.js:13762
Ember.View.Ember.Object.extend.invokeForState ember.js:12402
Ember.View.Ember.Object.extend.appendChild ember.js:13199
EmberHandlebars.ViewHelper.Ember.Object.create.helper ember.js:18873
(anonymous function) ember.js:19030
(anonymous function) ember.js:19229
(anonymous function) ember.js:19366
(anonymous function)
(anonymous function) handlebars.js:1879
Ember.View.Ember.Object.extend.render ember.js:12368
Ember.View.Ember.Object.extend.renderToBuffer ember.js:13017
Ember.View.Ember.Object.extend.createElement ember.js:12814
Ember.View.states.preRender.insertElement ember.js:13702
Ember.View.Ember.Object.extend.invokeForState ember.js:12402
invoke ember.js:3377
iter ember.js:3424
RunLoop.flush ember.js:3480
RunLoop.end ember.js:3396
Ember.run.end ember.js:3588
autorun
4

1 回答 1

0

此错误已在更高版本的 ember 中得到解决,不再相关。

于 2014-04-28T12:27:05.847 回答