ember.js转换来自jquery ui回调

时间:2012-12-04 00:46:34

标签: jquery-ui ember.js

我正在使用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}); 
      }
    });
  }   
});

有更好的方法吗?

1 个答案:

答案 0 :(得分: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}); 
      }
    });
  }   
});