特定のルートを指定すると、ビューでカスタム機能をトリガーするのに問題があります。
通常、/posts/1 にアクセスし、ビューにこれが含まれていた場合
{{ id }}
アプリ内からルートに移動した場合でも、ページの更新時に初めて /posts/1 にアクセスした場合でも、ID は更新されます。
しかし、テンプレートがそれほど単純でない場合はどうなるでしょうか? たとえば、表示を更新するための独自の API を持つ日付ピッカーを使用しています。したがって、データが変更されたら、呼び出す必要があります
this.$('#dp').datepicker('setDate', month)
アプリ内からルートが変更された場合はこれが機能しますが、ユーザーがこれらのルートのいずれかで開始した場合はどうなりますか? ビューにカスタムメソッドを追加してみました
App.DatepickerView = Ember.View.extend({
didInsertElement: function() {
....
},
setMonth: function(month) {
this.$('#dp').datepicker('setDate', month.get('id'));
}
});
次のようにルートにフックします。
App.MonthRoute = Ember.Route.extend({
setupController: function(controller) {
App.DatepickerView.setMonth(controller.get('model'));
}
})
しかし、私はそれsetMonth
が未定義であることを取得しています。これについて正しい方法は何ですか?
更新: Datepicker のテンプレートは次のとおりです。
{{#view App.DatepickerView }}
<div class="filter-section">
<div id="dp" class="input-prepend date">
<span class="add-on"><strong>Month</strong></span>
<input class="span2" type="text" placeholder="Select a month">
</div>
</div>
{{/view}}