1

関連付けられているコントローラーのモデルが変更されたときにフォーカスを受け取るテキスト領域があります。

rc8 より前は、次のオブザーバーを使用していました。

modelChanged: function() {
  this.set('focusing', true);
  this.$().focus();
  this.set('focusing', false);
}.observes('controller.model'),

1.0.0 リリースまたは rc8 では動作しません。コントローラーのオブザーバーが期待どおりに起動することを確認しました。

modelChanged: function() {
  console.log('TextArtController->modelChanged');
}.observes('model'),

ただし、そのレベルのコントローラーが特定のビューを気にしないようにすることをお勧めします(プッシュではなくプルが必要です)


さらに掘り下げた後、次の変更点を発見しました。

  • TextField および TextArea コンポーネントを作成する

これにより、コントローラー/ビュー階層から textarea サブクラスが切り離されます。

4

1 に答える 1

3

ember 1.0.0 の最新バージョンでは、ビューのTextField&TextAreaがコンポーネントに変換されEmber.Component、分離されたビューとしてのコンポーネントはそのコンテキストを認識していないため、controllerプロパティはもう参照しcontrollerません。

あなたがやろうとしていることをまだ達成できる方法は、ビューの周囲のコンテキストでtargetObjectを参照する文書化されていない を使用することです。controller

modelChanged: function() {
  this.set('focusing', true);
  this.$().focus();
  this.set('focusing', false);
}.observes('targetObject.model'),

それが役に立てば幸い。

于 2013-09-15T22:49:15.767 に答える