2013-07-06 2 views
0

Скажем, у меня есть этот кусок кода:Как узнать, какой вид связан с каким контроллером?

App.ClickableView = Ember.View.extend({ 
    click: function(evt) { 
    this.get('controller').send('turnItUp', 11); 
    } 
}); 

Когда я this.get('controller') внутри вида, как я знаю, какой именно контроллер я получаю? Есть ли способ привязать представление к определенному контроллеру, так что this.get('controller') возвращает этот контроллер?

ответ

1

Когда я делаю this.get ('controller') внутри представления, откуда я точно знаю, какой контроллер я получаю?

console.log(this.get('controller').toString()); 

Есть ли способ, чтобы связать представление для конкретного контроллера, так что this.get («контроллер») возвращает этот контроллер?

Да и нет. Да, потому что controller - это свойство, поэтому его можно настроить как что-либо еще. Но нет, потому что это, вероятно, не очень хорошая идея, если вы действительно не знаете, что делаете. Просто убедитесь, что вы используете правильный помощник - см этого поста для обзора вариантов:

http://darthdeus.github.io/blog/2013/02/10/render-control-partial-view/

Обычно уголек будет заботиться о настройке свойства контроллера в целях к соответствующему контроллеру. Поэтому в большинстве случаев представление не должно волновать, с каким контроллером он работает. Добавьте любую логику или свойства, необходимые для этого контроллера. Если контроллер требует доступа к данным или логике с другого контроллера, используйте свойство требований контроллера, чтобы обеспечить связь между контроллерами.