2014-03-31 3 views
0

죄송합니다, 정말 아무 것도 찾을 수 없습니다 나는

을 감안할 때 일부 설명 (또는 좋은 깔끔한 트릭)

에 대한 바라고 있어요 그것은 여러 자식 범위에서 사용할 수 있도록

<div ng-controller="Parent"> 
    <div ng-controller="Child"> 
     //child manipulation of parent scope object 
    </div> 
</div> 

부모는 JSON 객체를 설정 -

$scope.persistentData = getAJSONObject(); 

아이의 범위는 어떤 계산을하고 지역 JSON 객체의 키를 업데이트하려고합니다 그것

doCalculations($scope.persistentData.keyIWantToAlter) 

내가 (아래 그림 참조)를 명시 적으로 아동의 계산 기능의 결과로 부모 범위를 할당 할 필요가 또는 내가 부모에 대한 변경 사항을 전달 될 수있는 방법이 있나요 - 부모로부터 상속 자식의 상속 된 범위 객체를 사용하여 범위를 확장 할 수 있습니까?

$parent.$scope.$persistentData.keyIWantToAlter = 
    doCalculations($scope.persistentData.keyIWantToAlter) 
+1

재주문을 고려해보십시오. 현재 귀하가 요구하는 것을 따라하기가 어렵습니다. – Nix

+0

는 다행스럽게도 필자는 .. 'getAJSONObject' 비동기가 명확 – SMC

+0

이 더 악화하지? – Nix

답변

2

당신이 준 blurb에 어떤 문제도 보이지 않습니다. 우리에게 더 많은 것을 주어야합니다. 범위에서 중첩 된 객체를 "공유"하려고 시도 할 때주의 할 수 있습니다.

This fiddle 당신이 아이에 있고 당신이 참조 "덮어 쓰기"하면 어떻게되는지 보여줍니다. json2은 이것들이 같은 것을 시작한다는 것을 보여 주지만, 하위 범위의 참조를 덮어 쓴다. 그리고 변수는 분리된다.

난 당신이 유사한 문제를 겪고 있다고 생각하지만 당신은 더 많은 정보를 제공 할 때까지 그것을 증명할 수 없습니다.

<div ng-controller="ParentCtrl"> 
    Hello, {{json2}}! 
    <div ng-controller="ChildCtrl"> 
      Hello, {{json2}}! 
    </div> 
</div> 



function ParentCtrl($scope) { 
    $scope.json2 = { 
     child:{ 
      name: 'parent' 
     } 
    } 

} 

function ChildCtrl($scope, $timeout) { 

    $scope.json2 = { 
     child:{ 
      name: 'child' 
     } 
    } 

    $timeout(function(){ 
     $scope.json2.child.name= 'nick'; 
    },5000); 
} 
+0

감사를 유지하는 것을 방지하기 위해 기대했다 아니에요 없음 같은 것을 할 수 있습니다 't은 명시 적 $ 부모 참조가 추한 비록 그들이 장기적 – SMC

+0

사용 서비스에 안전 할 수 있다고 생각하는 날 리드하는 발견) 당신이 중첩 범위에 의존 할 때 문제의 모든 종류에 실행할 수 있습니다. – Nix

+0

감사합니다. 부모 컨트롤러에 서비스를 제공하겠습니까? 아니면 완전히 컨트롤러 외부에서 생각해야합니까? – SMC