2017-02-15 17 views
0

Как получить доступ к переменной области родителя в шаблоне дочернего контроллера?Доступ к родительской переменной сферы в шаблоне дочернего контроллера - Угловая

У меня есть дочерний контроллер (сборщик времени) и вы хотите изменить текст кнопки под дочерним контроллером родительским контроллером. Как изменить значение дочернего шаблона с помощью родительского контроллера?

код Plunker: https://plnkr.co/edit/WVFVTF7wKsGTgOrBfADB?p=previewenter code here

ответ

1

просмотров за детьми имеют автоматический доступ к $ свойства области видимости. Просто обращайтесь к ним, как обычно.

Изменение родительских свойств немного сложнее. Я бы предложил использовать сеттер для изменения свойства родителя. Если вы измените его, как обычно, (просто назначив значение), он создаст копию с локальным охватом с новым значением вместо изменения существующего на родительском объекте.

Выполните следующие действия на вашем родительском контроллере:

$scope.myValue = "foo"; 
$scope.changeMyValue = function (value) { 
    $scope.myValue = value; 
} 

Затем вызовите changeMyValue метод из вашего контроллера ребенка.

Если вы хотите изменить дочерние свойства, я бы предложил события.

ли это в вашем родительском контроллере стрелять событие:

$scope.$broadcast('myEventName', myValue); 

Вы можете получить событие на геймпаде ребенка таким образом:

$scope.$on('myEventName', (event, value) => handleEvent(value));