私は、あるコントローラーが別のコントローラーに依存するこの残り火アプリを作成しようとしています:
App.BooksController = Ember.ArrayController.extend({
itemController: 'book'
});
App.BookController = Ember.ObjectController.extend({
needs: 'books',
formattedPrice: function(){
return "$"+this.get('price').toFixed(2);
}.property('price'),
imageUrl: function(){
var img = this.get('image');
return "http://localhost/book-store-restful-api/images/book_covers/"+img;
}.property('image')
});
そして、2 つのルートがあります#/books
。#/books/book_id
に移動する#/books
と、すべての書籍のリストと、個々の書籍コントローラーへのリンクが表示されます。クリックすると、期待どおりに機能し、個々の書籍情報が表示されます。しかし、1 を参照すると#/books/book_id
(テンプレート内でレンダリングbooks
されます)、書籍のリストがレンダリングされますが、関連するモデルがフェッチされる前にサブテンプレートがレンダリングされるように見えるため、直接ナビゲートすると、個々の書籍のプロパティはすべてundefined
. ロード後に対応するリンクをクリックすると、データが利用可能になります。
一言で言えば、BookController
モデル データがフェッチされた後、関連する単一のブック サブビューのみをレンダリングするように指示する方法はありますか?