0

私はEmber.Routerで遊んでいます。Kasper Tidemann による優れたサンプルcanonical-emberjs-routing-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')
});
4

1 に答える 1

1

私のコメントで:

Em.Selectを再度開くと、EmberアプリのすべてのSelectコントロールに変更が適用されます。Ember.Selectを拡張するビューを作成してから、valueDidChangeメソッドをオーバーライドすることもできます。

私はこれに似た何かを意味しました

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

Ember.Selectこのようにして、アプリの残りの部分の元の機能を上書きしません。RoutableSelectこれで、この機能を終了させたい特定のビューに使用できます。

于 2012-07-03T18:41:16.320 に答える