2

ネストされたリソースがあります:

    this.resource('foo', {path: '/foo/:foo_id'}, function() {
        this.route('makesomethingwithfoo');

        this.resource('bar', {path: 'bar/:bar_id'}, function() {
            this.route('makesomethingwithbar');

fooにいる間に、モデルのいくつかのプロパティを使用したいと思います#/foo/321421/bar/231421。私BarIndexControllerはこのように見えます:

   ... = Ember.ObjectController.extend({
    needs:'fooIndex',
    //myBinding: 'controllers.fooIndex',
    ....});

テンプレートで使用するcontrollers.fooIndex.desiredPropertyと、 model のプロパティにアクセスできますfoomyBindingあと数文字書く手間を省くために使いたかった( controllers.fooIndex)。私はすべてを正しく行ったと思います。少なくともドキュメントによると正しいようです。次のエラーが表示されます。

     Uncaught Error: assertion failed: Cannot delegate set('my', <(subclass of 
     Ember.ObjectController):ember238>) to the 'content' property of object proxy
     <(subclass of Ember.ObjectController):ember249>: its 'content' is undefined 
4

1 に答える 1

2

モデルのcontrollerfooです。ルートはルートのfooIndex暗黙的なネストされたルートであるfooため、独自のコントローラーがあります。ネストされたFooIndexControllerものは、必要に応じてその親ルートでモデルを検索する必要もあります。

この場合、ニーズ宣言の代わりにbarルートを使用する必要があります。foofooIndex

needs:'foo',
fooBinding: 'controllers.foo'

fooBindingオプションです。ルックアップを に短縮しますthis.get('foo')。Ember でネストされたリソースを明確にするために、この回答を参照することもできます。

于 2013-07-22T03:04:37.557 に答える