programing

상위 범위가 지정된 Angularjs에서 모든 하위 범위를 가져옵니다.

subpage 2023. 10. 21. 10:28
반응형

상위 범위가 지정된 Angularjs에서 모든 하위 범위를 가져옵니다.

부모 범위가 주어진 모든 자녀 범위의 목록을 얻는 방법을 알고 싶습니다.스코프의 속성에서 찾을 수 있는 것은 $$child뿐입니다.헤드, $$childTail, $nextSibling, $prevSibling.

제가 지금 사용하고 있는 접근법은 아이 헤드를 부모로부터 얻은 다음 다음 다음 아이를 얻기 위해 다음 아이를 사용하는 것입니다. 다음 아이가 null일 때까지요.

더 나은 접근법이 있습니까?모든 아이들에게 method [getModel]을 호출하고 싶은데, 이를 더 나은 방법이 또 있을까요?

모든 Angular scope는 DOM 요소에 부착되어 있으며, 현재 요소를 사용하여 원하는 모든 어린이를 검사하는 것으로 시작할 수 있습니다.그러면 아래 함수를 사용하여 스코프를 가져옵니다.

angular.element('#5th_element').scope();

하위 지침은 격리된 범위를 사용하며 부모로부터 보이지 않는 고유한 값을 가집니다.상위 범위에서 이 값에 액세스하고 싶습니다.

"자녀 스코프에 액세스해야 하는 부모 스코프" 문제를 해결하기 위한 '각도 방식'은 모델을 부모 스코프로 이동하여 (자녀 스코프가 자체 로컬 속성/복사본을 가지고 있는 것이 아니라) 자녀 스코프가 부모 속성/데이터를 참조하도록 하는 것입니다.예를 들어, 각 반복이 입력 양식 요소를 포함하는 경우 ng-반복을 처리하는 방법은 다음과 같습니다(즉, 각 반복은 양방향 데이터 바인딩이 필요합니다).ng-model, ng-repeat 및 입력의 어려움

지시어를 사용하여 먼저 상위 범위에 개체 배열을 정의한 다음 '=' 표기법(즉, 양방향 데이터 바인딩 표기법)을 사용하여 각 분리된 하위 범위에 해당 상위 범위 배열(또는 개별 개체)에 액세스하도록 합니다.개체가 공유되고 있으므로 분리된 스코프는 상위 개체를 참조합니다(로컬 복사본을 얻지 못합니다).이제 하위 스코프 속성을 변경하면 상위 스코프 속성이 실제로 변경됩니다.

AngularJS 1.3.2에서 acountChildScopesmethod가 ngMock 모듈에 추가되었습니다.

/*** @ngdoc 방법* @이름 $rootScope.Scope#$countChildScopes* @modulegMock* @desc 기술* 현재 범위의 모든 직접 및 간접 하위 범위를 카운트합니다.
** 현재 범위는 카운트에서 제외됩니다.카운트에는 모든 격리 하위 스코프가 포함됩니다.
** @{number} 총 하위 범위 수입니다.
*/함수 수ChildScope(범위){// jshint valid this: truevar count = 0; // 현재 범위 제외var 루트 = 스코프 || 각. element(document).injector().get('$rootScope');다양한 ChildHeads = [root.$$자녀머리];varcurrentScope;
(Pending Child Heads.length) 동안{currentScope = pendingChildHeads.shift();
while (currentScope){카운트 += 1;pendingChildHeads.push(currentScope).$$childHead);currentScope = currentScope.$nextSibling;}}
반환 횟수}

개체를 반환 값으로 사용하여 ID를 가져옵니다.

함수 열거ChildScope(범위){// jshint valid this: truevarenum = {}; // 현재 범위 제외var 루트 = 스코프 || 각. element(document).injector().get('$rootScope');다양한 ChildHeads = [root.$$자녀머리];varcurrentScope;
(Pending Child Heads.length) 동안{currentScope = pendingChildHeads.shift();
while (currentScope){enum["scope"+pendingChildHeads.length] = currentScope입니다.$id;pendingChildHeads.push(currentScope).$$childHead);currentScope = currentScope.$nextSibling;}}
숫자를 반환합니다.}

참고문헌

언급URL : https://stackoverflow.com/questions/12649080/get-to-get-all-child-scopes-in-angularjs-given-the-parent-scope

반응형