2

jquery-ui datepickerを使用して、日ごとにアプリケーションをナビゲートしています。問題は、ビューからtranstionToを呼び出していることであり、これは間違っているという印象を受けています。

コードは次のとおりです。

http://jsfiddle.net/arenoir/rjVUN/

App.CalendarView = Ember.View.extend({
  tagName: 'div',
  didInsertElement: function() {
    var router;
    router = this.get('controller.target.router');
    this.$().datepicker({
      dateFormat: "yy-mm-dd",
      onSelect: function(dateText, instance) {
          router.transitionTo('show', {day: dateText}); 
      }
    });
  }   
});

もっと良い方法はありますか?

4

1 に答える 1

3

あなたは正しいですが、時にはそれは避けられません。私が提案するのは、このケースを処理するためのメソッドをルーター上に作成することです。

ルーター内:

calendarParentRoute: Ember.Route.extend({
  url: "/",
  showDate: Ember.Route.transitionTo('show'),
  show: Ember.Route.extend({
    url: ":date",
    connectOutlets: function(router, context){
      // Do stuff
    }
  })
})

意見:

App.CalendarView = Ember.View.extend({
  tagName: 'div',
  didInsertElement: function() {
    var router;
    router = this.get('controller.router');
    this.$().datepicker({
      dateFormat: "yy-mm-dd",
      onSelect: function(dateText, instance) {
        router.send('showDate', {day: dateText}); 
      }
    });
  }   
});
于 2012-12-04T06:42:03.453 に答える