これが状況です。ページに付箋のリストを表示する Ember.js の例を書いています。各メモにはパーマリンクがあり、クリックすると、リストが 12 列ではなく 6 列縮小され、空のスペースにメモが表示されます。リンクをクリックすると問題なく動作しますが、戻るボタンを使用してリストに戻ると動作しません。これが私のコードです:
App.Router.map(function(){
this.resource("notes", function(){
this.resource("note", { path: "/:note_id" });
});
});
App.NotesRoute = Ember.Route.extend({
model: function(){
return App.Note.find();
},
setupController: function(controller){
controller.set("isShowing", false);
}
});
App.NoteRoute = Ember.Route.extend({
setupController: function(){
this.controllerFor("notes").set("isShowing", true);
}
});
そして、各状態のテンプレート:
<script type="text/x-handlebars">
<div class="row">
<div class="twelve columns">
<h1>Ember Stickies</h1>
{{outlet}}
</div>
</div>
</script>
<script type="text/x-handlebars" data-template-name="notes">
<div class="row">
<div class="twelve columns">
<h3>My Notes</h3>
</div>
</div>
<div class="row">
<div {{bindAttr class="isShowing:six:twelve :columns"}}>
<ul class="block-grid four-up mobile-one-up">
{{#each note in controller}}
<li class="sticky-list-item">
{{view Ember.TextArea classNames="sticky-note" valueBinding="note.content"}}
{{#linkTo note note classNames="sticky-permalink"}}
∞
{{/linkTo}}
</li>
{{/each}}
</ul>
</div>
{{outlet}}
</div>
</script>
Ember がNoteRoute
sを呼び出すsetupController
と、 に設定isShowing
されtrue
ます。ただし、戻るボタンを使用して に戻るとNotesRoute
、setupController
呼び出されないため、isShowing
false に変更されることはありません。これは意図的な Ember の動作だと思いますが、このトランジションにフックするために使用できるコールバックはありますか?