[angularjs] AngularJS와 달러 변수 사용

angularJS에서 달러 방법과 변수를 사용하는 이유는 소화가 진행될 때 angularJS가 그 값을 확인하지 않도록 지시하는 것입니까? 따라서 각도가 $scope.$value와를 $scope.value만나면 변수 이름에 달러 문자가 접두어로 붙어 있기 때문에 전자를 검사하지 않아도 됩니까?



답변

Angular는 접두사로 시작하는 변수를 무시하는 경우가 몇 번 있습니다.

  1. Schumli의 코멘트 , 아래의 경우 JSON 필터는 출력을하지 않습니다
  2. {{ }}지시문을 사용할 때 angular는 중첩 $
    변수를 표시하지 않습니다 . 예를 들어 visible속성 만 표시합니다 .

    <div ng-init="n = { visible: 'foo', $ignore: 'bar' };">{{ n }}</div>
  3. 또한 범위 개체에 명시 적 감시자를 추가 할 때이 개체의 선행 달러 기호가있는 속성을 변경해도 감시자가 트리거되지 않습니다. 이 업데이트 된 바이올린을 참조하십시오 .

  4. angular.equals() 접두사가 붙은 키는 무시합니다$ .


답변

아래 스 니펫 http://docs.angularjs.org/tutorial/step_05 의 명명 규칙입니다.

‘$’접두사 명명 규칙
고유 한 서비스를 만들 수 있으며 실제로 11 단계에서 정확하게 수행합니다. 명명 규칙으로 앵귤러의 기본 제공 서비스, 스코프 메서드 및 기타 앵귤러 API에는 ‘$’접두사가 있습니다. 이름 앞에. 가능한 이름 충돌을 피하기 위해 서비스와 모델의 이름을 지정할 때 ‘$’접두사를 사용하지 마십시오.

http://docs.angularjs.org/guide/concepts#angular_namespace

Angular 네임 스페이스
우연한 이름 충돌을 방지하기 위해 Angular는 $와 충돌 할 수있는 개체 이름을 접두사로 사용합니다. 실수로 각도 코드와 충돌 할 수 있으므로 코드에 $ 접두사를 사용하지 마십시오.


답변

$프리픽스 각도의 코어에 속하는 변수, 파라미터, 특성, 또는 방법을 나타낸다.

프레임 워크 내에서 시작되었지만 실제로는 API의 일부가 아닌 객체의 속성 은 개인 메서드 또는 속성 을 나타 내기 위해 시작 $하거나 심지어 시작 하기도 합니다. 이것은 다른 라이브러리에서 접두사가 자주 사용되는 것과 같은 방식 입니다.$$_

프레임 워크 자체에서 특별한 의미를 부여 할 수 있지만 런타임에서 코드를 해석하는 방식에는 영향을 미치지 않습니다. 기본적으로 “네가 엉망이되어서는 안된다”는 명명 규칙입니다.


답변

확실하지는 않지만 AngularJS 내부는 다이제스트 중에 $ 접두사 변수를 조작하는 데 의존한다고 생각합니다. 이러한 변수를 확인하면 다이제스트의 각주기 동안 끊임없이 변경 될 수 있으므로 다이제스트가 안정화되지 않습니다.

그래도 인용하지 마십시오. 🙂


답변

나는 항상 $서비스의 “S”처럼 보인다.


답변

달러 ( $ ) 기호는 특정 지시문에서 요소가 반복 (또는 해석)되는 것을 방지합니다. 예를 들어 $ 로 시작하는 속성 은 for 루프의 if 절ng-repeat 때문에 사용되지 않습니다 .

if(collection.hasOwnProperty(key) && key.charAt(0) != '$')

누군가 각도 github 페이지 의 주제에 대해 문제 를 일으켰습니다.


메소드 shallowCopy에서 $$ 로 시작 하는 특성은 특성을 반복하는 동안 if 절로 인해 건너 뜁니다 .

if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {


답변

@MarcoS 는 $ scope와 scope의 차이점을 설명하는 https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope 에 대한 링크를 제공했습니다 . 다른 답변의 정보를 추가하여 이것이 유용하다는 것을 알았습니다.

각도 지시문에는 링크와 컨트롤러가 있습니다. 링크는 범위, 요소, 속성 오브젝트와 같은 고정 된 매개 변수 세트가있는 표준 기능입니다.

컨트롤러의 인수는 Angular 인젝터에 의해 관리되며 순서에 의존하지 않습니다. 인젝터는 $로 시작하는 매개 변수를 찾아 전달할 오브젝트를 분석합니다.

https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope 의 저자가 더 잘 설명합니다.