1

2 週間前、RC2 の更新された {{render}} に関連すると思われる問題を投稿しました: EmberJS: in RC2, how to use "needs" for a controller when {{render}} is called multiple times?

今、私はそれがこれよりも広いと思うか、古い「itemController」を使用するときにも発生するため、「ニーズ」API の使用方法を誤解しています。

次の点を考慮してください。

App.Parent = Ember.Object.extend({
    name: null,
    children: null, // An Ember array of Child objects
});

App.Child = Ember.Object.extend({
    name: null,
});

App.ParentController = Ember.ObjectController.extend({
});

App.ChildController = Ember.ObjectController.extend({
    needs: 'parent',
});

私のテンプレートは次のようなものです:

<script type="text/x-handlebars" data-template-name="application">
    {{#each parent in App.parents itemController='Parent'}}
        {{partial 'parent'}}
    {{/each}}
</script>

<script type="text/x-handlebars" data-template-name="_parent">
    In parent: {{controller}}<br>
    Name: {{name}}<br>
    <br>
    {{#each child in children itemController='Child'}}
        {{ partial 'child' }}
    {{/each}}
</script>

<script type="text/x-handlebars" data-template-name="_child">
    Child name: {{name}}<br>
    Parent Name: {{controllers.parent.name}}<br>
    <br>
</script>

{{controllers.parent.name}} が常に null になるのはなぜですか?

http://jsfiddle.net/8V9xQ/5/

ありがとう

PJ

4

1 に答える 1

1

needsこれには APIを使用する必要はありません。{{parent.name}}代わりに{{controllers.parent.name}}子テンプレートに書き込み、needs: 'parent'から行を削除するだけApp.ChildControllerです。

needsはシングルトンではありませんが、 API を使用してシングルトン コントローラーを参照しますitemController

于 2013-04-09T14:01:27.280 に答える