source

각진 '='의 의미는 무엇입니까?JS 지시 격리 범위 선언?

nicesource 2023. 3. 20. 23:20
반응형

각진 '='의 의미는 무엇입니까?JS 지시 격리 범위 선언?

뒤에 있는 물음표는 특별한 의미가 있나요?즉,

scope: {foo: '=?'}

위의 내용은 'foo'를 해결할 수 없는 경우 오류를 발생시키지 않음'을 의미합니까?

네:

'isolate' 스코프는 상위 스코프에서 파생된 로컬 스코프 속성 집합을 정의하는 개체 해시를 사용합니다.이러한 로컬 속성은 템플릿의 값을 에일리어스할 때 유용합니다.로컬 정의는 소스에 대한 로컬 스코프 속성의 해시입니다.

=또는=attr- 로컬 스코프 속성과 이름의 부모 스코프 속성 간에 양방향 바인딩을 설정합니다.attr기여하다.없는 경우attrname 이 지정되면 Atribute name 이 로컬 이름과 동일한 것으로 간주됩니다.정해진<widget my-attr="parentModel">및 위젯 정의scope: { localModel:'=myAttr' }, 다음으로 위젯 범위 속성localModel가치를 반영하다parentModel부모 스코프에서.에 대한 변경 사항parentModel반영되다localModel및 변경 사항localModel에 반영되다parentModel부모 스코프 속성이 존재하지 않으면 NON_ASSIGNABLE_MODEL_EXPRESSION 예외가 발생합니다. 또는 를 사용하여 이 동작을 방지하고 속성을 옵션으로 플래그 지정할 수 있습니다.

스코프 속성에 영향을 미치는 모든 다이제스트에서 예상되는 오류를 트리거해야 합니다.

parentSet = parentGet.assign || function() {
// reset the change, or we will throw this exception on every $digest
lastValue = scope[scopeName] = parentGet(parentScope);
     throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION + attrs[attrName] +
     ' (directive: ' + newScopeDirective.name + ')');
};

//...


if (parentValue !== scope[scopeName]) {
    // we are out of sync and need to copy
    if (parentValue !== lastValue) {
        // parent changed and it has precedence
        lastValue = scope[scopeName] = parentValue;
    } else {
        // if the parent can be assigned then do so
        parentSet(parentScope, lastValue = scope[scopeName]);
    }
}

언급URL : https://stackoverflow.com/questions/20447786/whats-the-meaning-of-in-angularjs-directive-isolate-scope-declaration

반응형