Ember.Select and Ember.Router



我在玩Ember.Router。在浏览了Kasper Tidemann的优秀示例规范-emberjs-routeing-example之后,我想我基本上得到了它。

但是,我想知道如何最好地将其与Ember.Select结合起来。
用例:我希望用户能够从下拉列表中选择模块,然后路由到正确的模块。

如何重新打开 Ember.Select 并覆盖 valueDidChange?有什么更好的方法吗?

Em.Select.reopen({
  valueDidChange: Ember.observer(function() {
    this._super();
    console.log('selection changed');
    App.router.transitionTo(this.get('value'))
  }, 'value')
});
在我的

评论中:

如果重新打开 Em.Select,则将更改应用于所有 Select Ember 应用中的控件。您可能希望创建一个视图 扩展 Ember。选择,然后重写 valueDidChange 方法

我的意思是与此类似

var RoutableSelect = Ember.Select.extend({
    valueDidChange: Ember.observer(function() {
        this._super();
        App.router.transitionTo(this.get('value'))
    }, 'value');
});

这样,您就不会为应用的其余部分覆盖Ember.Select的原始功能。现在,您可以将RoutableSelect用于希望此功能退出的特定视图。

最新更新