我总是得到这个错误:对象[object Object]没有方法'addArrayObserver'。检查网络我明白这不是一个特定的错误,可能我的问题是在我的路线,但我看不出任何问题... 这是我的代码:
window.Notes = Ember.Application.create();
Notes.ApplicationAdapter = DS.FixtureAdapter.extend();
Notes.Router.map(function () {
this.resource('notes', { path: '/' });
});
Notes.NotesRoute = Ember.Route.extend({
model: function (){
return this.store.find('note');
}
});
Notes.NotesController = Ember.ObjectController.extend ();
Notes.Note = DS.Model.extend ({
title: DS.attr('string'),
body: DS.attr('string'),
url: DS.attr('string'),
});
Notes.Note.FIXTURES = [
{
id: 1,
title: 'hello world',
body: 'ciao ciao ciao ciao',
url: '...'
},
{
id: 2,
title: 'javascript frameworks',
body: 'Backbone.js, Ember.js, Knockout.js',
url: '...'
},
{
id: 3,
title: 'Find a job in Berlin',
body: 'Monster, beralinstartupjobs.com',
url: '...'
}
]
这里是html:
<script type="text/x-handlebars">
<div class="wrap">
{{#each itemController="note"}}
<section>
<h2>{{title}}</h2>
<p>{{body}}</p>
<input type="text" placeholder="URL:" class="input" />
</section>
{{/each}}
</div>
我已经尝试更改Notes.NotesController = Ember.ObjectController.extend();与Notes.NotesController = Ember.ArrayController.extend();
但我仍然得到错误。我的代码出了什么问题?
答案 0 :(得分:0)
您的Notes.NotesController
需要是Ember.ArrayController
的子类,因为NotesRoute
model
挂钩返回的数据是一个类似(DS.RecordArray)的数组。
在此之后,您将收到错误,因为您声明itemController="note"
ember需要一个名为Notes.NoteController
的控制器,并且它必须是Ember.ObjectController
的子类。该控制器将每个元素包装在#each
视图助手中。
总结一下,代码中缺少这个:
Notes.NotesController = Ember.ArrayController.extend();
Notes.NoteController = Ember.ObjectController.extend();
请使用更新的代码http://jsfiddle.net/marciojunior/Ly8K6/
查看这个小提琴我希望它有所帮助
答案 1 :(得分:0)