2017-02-15 2 views
0

하위 컨트롤러 템플릿의 부모 범위 변수에 어떻게 액세스합니까?하위 컨트롤러 템플릿의 상위 범위 변수에 액세스 - 각도

하위 컨트롤러 (시간 선택기)가 있고 상위 컨트롤러가 하위 컨트롤러의 단추 텍스트를 변경하려고합니다. 상위 컨트롤러를 사용하여 하위 템플릿의 값을 어떻게 수정합니까?

Plunker 코드 : https://plnkr.co/edit/WVFVTF7wKsGTgOrBfADB?p=previewenter code here

답변

1

아이 뷰가 자동으로이 범위 속성을 $에 액세스 할 수 있습니다. 평상시처럼 액세스하십시오.

상위 속성을 수정하는 것이 약간 어렵습니다. 나는 setter를 사용하여 부모의 속성을 수정하는 것이 좋습니다. 일반적으로 (값을 할당하여) 수정하면 상위에있는 기존 값을 수정하는 대신 새 값으로 로컬 범위 지정된 복사본을 만듭니다.

는 부모 컨트롤러에서 다음을 수행하십시오

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

그런 다음 아이 컨트롤러에서 changeMyValue 메서드를 호출합니다.

자식 속성을 수정하려는 경우 이벤트를 제안합니다.

$scope.$on('myEventName', (event, value) => handleEvent(value)); 
: 당신은 당신의 아이 컨트롤러에이 방법으로 이벤트를 수신 할 수

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

:

이벤트를 발생하기 위해 부모 컨트롤러에서이 작업을 수행