私のルートには2つのパスがあります。私はdoc recommendsという2つのルートを作成しました。EmberがルータのsetupControllerを呼び出さない
私のルータは以下の通りです:
// router.js
Router.map(function() {
this.route('photos');
this.route('photo', { path: '/photo/:photo_id' });
});
私が最初にルート/写真/ IDを訪問してから/写真に行けば、それは後者のみで一つのオブジェクトを表示します。 (が間違っている)
私が/写真を最初に見ると、すべてのオブジェクトが表示され、後で/写真/ IDに行くことができ、それは問題ありません。 (右)
私は両方の方法で動作させたいです。これを行う方法?あなたはダウンし、以下の各ルートのための私のコードを見ることができます:
// photo.js
export default Ember.Route.extend({
model(params) {
return this.get('store').findRecord('photo', params.photo_id);
}
});
// photos.js
export default Ember.Route.extend({
setupController(controller, model) {
let photos = this.get('store').findAll('photo');
console.log('add all...');
// convert to an array so I can modify it later
photos.then(()=> {
controller.set('photos', photos.toArray());
});
},
});
ユーザーがどこに行く私は関係なく、常にfindAll()
関数を呼び出すことができますが、私は、これはスマートではないと思います。私が使用して写真に移動するには
:
私はページ遷移を取り扱っております道に/写真/ IDに移動するには
{{#link-to 'photos'}}All{{/link-to}}
私は「-routing」サービスを注入し、私が使用して一つのイベントでは、次のようにクリックしてください:
routing: Ember.inject.service('-routing'),
actions() {
selectRow(row) {
this.get("routing").transitionTo('photo', [row.get('id')]);
}
}
移行のためにリンク先をどのように呼びますか? 'model'または任意のオブジェクトを提供するとモデルフックとsetupControllerフックが呼び出されません – kumkanillam
コメントにここで不思議に思っていたので質問に追加します – mk2
モデル()を設定していない可能性がありますphotos.jsしたがって、あなたのモデルは更新されていませんか? – Cameron