2

(この質問はHow do you update another controller's properties and have its value update?へのフォローアップです)

前のテキストの例では小文字を使用する必要があるとアドバイスされました。ただし、私は現在、そのコードのもう少し複雑なバージョンに取り組んでおり、より複雑なルートとより複雑なコントローラー名を使用しています。

前の質問に投稿された回答と同様の方法で、より複雑なコントローラーを参照する適切な方法を誰かが拡張してもらえますか? たとえば、ExamplesListController"/examples/list" (サンプル リソースのリスト ルート) の場合です。

直感的なピクセルによって親切に修正された以前の jsbin を含めました。

App.ApplicationController = Ember.ObjectController.extend({
  needs: ['blah'],
  act: function() {
    console.log('act');
    var ctrl = this.get('controllers.blah');
    ctrl.set('myvalue', 'and this is the replacement text');
  }
});

http://jsbin.com/iCuVodO/2/edit

4

3 に答える 3

3

ニーズ配列のコントローラーを参照する方法を理解するには、その部分の前にあるものをすべて取得Controllerし、最初の文字を小文字にします。

の場合ExamplesListController:

App.ApplicationController = Ember.ObjectController.extend({
  needs: ['exampleList'],
  act: function() {
    console.log('act');
    var ctrl = this.get('controllers.exampleList');
    ctrl.set('myvalue', 'and this is the replacement text');
  }
})

JSBin の例

于 2013-09-03T01:06:26.507 に答える
2

より複雑なコントローラーを参照する適切な方法は、コントローラーnormalized名を使用することです。

App.ApplicationController = Ember.ObjectController.extend({
  needs: ['examplesList'],
  act: function() {
    var ctrl = this.get('controllers.examplesList');
    console.log('Controller is: ', ctrl.toString());
  }
});

コントローラーの正規化された名前は、その URL に依存しません。これは、コントローラーが ember アプリケーションのコンテナー内でどのように表現されるかに関連しています。これがどのように機能するかを確認するには、DefaultResolver API ドキュメントまたはnormalize メソッドのソースを確認してください。

もちろん、最初にコントローラーの名前を付ける方法をよく理解しておくことも役立ちます。参照: http://emberjs.com/guides/concepts/naming-conventions/ 命名規則をよりよく理解するには、

于 2013-09-03T01:06:41.157 に答える