我有以下格式的路线#/books/book/:bookId
当我在 #/books 上并单击 {{linkTo}} 时,我的模型没有被执行,并且返回了以下错误。
Error while loading route: TypeError {}
Uncaught TypeError: Object 4 has no method 'addArrayObserver'
我知道只有在您使用浏览器刷新页面时才会执行模型,所以我使用了序列化,根据文档,它应该允许在我点击 {{linkTo} 时执行我的模型,但它没有不。它返回上述错误。
utils.get 是一个 Ajax 调用,它返回一个 json ......你能告诉我我做错了什么吗?谢谢你。
App.Router.map(function() {
this.resource("books", function() {
this.resource("book", {path: "/book/:bookId"});
});
});
var BookModel = Ember.Object.extend({});
BookModel.reopenClass({
find: function(bookId) {
var assets = Ember.A();
utils.get('book/' + bookId, function(response) {
response.assets.forEach(function(c) {
assets.pushObject(BookModel.create(c));
})
});
return assets;
}
});
var BooksModel = Ember.Object.extend({});
BooksModel.reopenClass({
findAll: function() {
var books = Ember.A();
utils.get('books', function(response) {
response.books.forEach(function(c) {
books.pushObject(BooksModel.create(c));
})
});
return books;
}
});
var BookRoute = Ember.Route.extend({
model: function(params) {
return BookModel.find(params.bookId);
}
,serialize: function(model, params) {
return { bookId: model };
}
});
<h2>books</h2>
<ul class="nav nav-tabs nav-stacked">
{{#each item in model}}
<li>
{{#linkTo "book" item.id}}{{item.name}}{{/linkTo}}
</li>
{{/each}}
</ul>
{{outlet}}