2013-03-11 2 views
0

У меня возникли проблемы с настройкой дочернего контроллера из родительского контроллера.Требования к контроллеру Ember.js и дочерний контроллер

Имея это:

<script type="text/x-handlebars" data-template-name="parent"> 
    <h1>Parent controller</h1> 
    {{control "child"}} 
</script> 

<script type="text/x-handlebars" data-template-name="child"> 
    <h2>Child controller</h2> 
    {{controller}} 
</script> 

App.ParentController = Ember.Controller.extend({ 
    needs: ["child"], 
    applyActionOnChild:function(){ 
     this.get('controllers.child').someAction(); 
    } 
}); 
App.ParentView = Ember.View.extend({}); 

App.ChildController = Ember.Controller.extend({ 
    someAction:function(){ 
     //Called but not the right instance 
    }; 
}); 
App.ChildView = Ember.View.extend({}); 

нужд особенность уголек, кажется, работает, когда контроллер ребенок называет родительский контроллер, но не наоборот ...

Если я устанавливаю точку останова метод someAction, я вижу, что у меня есть другая ссылка на объект, отличная от отображаемой на детском представлении ...

Кто-нибудь знает, как это может работать?

Заранее спасибо

ответ

1

В вашем примере вы указываете {{controller "child"}}, Вы имели в виду {{control "child"}}? Если не сложно сказать, что вы пытаетесь сделать.

Функция потребностей предназначена для соединения друг с другом контроллеров, но контрольный помощник отображает шаблон в контексте новой пары контроллеров/представлений. Вы не можете использовать потребности для доступа к этим контроллерам, так как не было бы нужды знать, какой экземпляр вы имели в виду.

Похоже, что вместо этого вы хотите отобразить «дочерний» шаблон в контексте одного true childController singleton. В этом случае используйте помощник рендера: {{render "child"}}

+1

Это сделало трюк спасибо! Жаль, что это плохо документировано ... – Fiftoine

+0

Прохладный, рад, что помогает. FWIW помощник '{{control}}' все еще является экспериментальным, если он будет запущен в открытый API, официальные документы будут следовать. Meantime @darthdeus имеет хорошее сообщение в блоге о различных помощниках здесь: http://darthdeus.github.com/blog/2013/02/10/render-control-partial-view/ –

Смежные вопросы