2015-02-13 7 views
0

Я хочу получить доступ к контроллеру приложения, чтобы я мог получить/установить значение переменной (selected_date).Доступ к контроллеру приложения из вида didinsertelement

myApp.ApplicationController = Ember.Controller.extend({ 
    selected_date: null, 
    actions: { 
    } 
    } 
}); 

Я хотел бы внести изменения в selected_date из представления (didinsertelement), контроллер для зрения:

myApp.CreportController = Ember.ObjectController.extend({ 
    needs: ["application"] 
}); 

вид:

CreportController View = Ember.View.extend({ 
    didInsertElement: function() { 
     var controller = this.get('controller'); 
     var selected_date = controller.get('controllers.application').get('selected_date'); 
     ... 
+0

'needs' должен быть массивом. Измените его на 'needs: [" application "]'. Какие изменения вы пытаетесь сделать для selected_date? Не похоже, что вам нужно 'didInsertElement'. – rogMaHall

+0

Мне нужно изменить значение selected_date (type string) из элемента didinsert –

+0

только что отредактировал почтовый индекс –

ответ

0

Я обновил код с решением:

var controller = this.get('controller'); 
var selected_date = controller.get('controllers.application').get('selected_date'); 
2

У вас есть свойства неправильно , Использование функции needs помещает эти контроллеры в свойство controllers. Затем ваше представление может получить доступ к собственному контроллеру, используя свойство controller. Так что вам нужно сделать это на ваш взгляд:

didInsertElement: function() { 
    var selected_date = this.get('controller.controllers.application').get('selected_date'); 
} 
+0

Я получаю error: Uncaught TypeError: undefined не является функцией –

+0

Отлаживайте свой код и выясняйте, что возвращается как 'undefined'. Возможно, ваше представление не имеет ссылки на его контроллер. – GJK

+0

На первый взгляд вы отправили несвязанный контроллер и вид (они названы по-разному). Вы пытаетесь получить собственный контроллер представления или другой? – GJK

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