AngularJS에 대해 배우기 시작했고 ng-app
및 data-ng-app
지시문 의 차이점이 무엇인지 혼란 스럽습니다 .
AngularJS에 대해 배우기 시작했고 ng-app
및 data-ng-app
지시문 의 차이점이 무엇인지 혼란 스럽습니다 .
답변:
이러한 답변의 대부분은 단순히 THOSE 용어의 의미를 설명하지 않고 템플릿을 유효한 HTML 또는 HTML Validator Compliant로 만듭니다.
확실하지는 않지만 이러한 용어는 보풀과 같은 표준 준수를 위해 코드를 스캔하는 HTML 유효성 검사 프로그램에 적용되는 것 같습니다. ng-app
유효한 속성으로 인식되지 않습니다 . 기본이 아닌 HTML 속성이 앞에 붙을 것으로 예상합니다.
data-attribute_name_here
.
따라서 제작자는 HTML 유효성 검사기 프로그램에서 "좋아요"있도록 AngularJS
지시문에 대한 대체 이름을 data-
앞에 포함 시켰 습니다.
런타임 동작과 관련하여 어느 것도 여기에 설명되지 않은 다른 스타일 지정 지시문입니다. http://docs.angularjs.org/guide/directive
지시어는 ngBind와 같은 낙타의 경우 이름이 있습니다. 지시문은 낙타 케이스 이름을 특수 문자 :,-또는 _를 사용하여 뱀 케이스로 변환하여 호출 할 수 있습니다. 선택적으로 지시문에 x 또는 data를 접두어로 붙여 HTML 유효성 검사기를 준수 할 수 있습니다. 가능한 지시문 이름 중 일부는 ng : bind, ng-bind, ng_bind, x-ng-bind 및 data-ng-bind입니다.
이 글을 통해 알 수 있듯이 data-
HTML을 HTML 유효성 검사기 테스트 /
각도 네임 스페이스를 선언 할 수 있습니다 <html xmlns:ng="http://angularjs.org" ng-app>
최신 브라우저에서는 차이가 없지만 이전 IE에서는이를 정의하는 XML 네임 스페이스를 선언하지 않으면 작동하지 않습니다.
ng-app
유효한 XHTML이 아니기 때문에 유효성 검사 차이 가 있으며 웹 페이지에서 HTML 유효성 검사에 실패합니다. Angular를 사용하면 지시문 앞에 접두사를 붙이 data-
거나 x-
유효성을 검사 할 수 있습니다.
페이지 HTML을 유효하게하려면 ng- 대신 data-ng-를 사용할 수 있습니다.
이것은 것이다 오류가 발생
<div ng-app="">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
이것은 하지 않습니다 오류가 발생
<div data-ng-app="scope" data-ng-init="name='test'">
<p>Input something in the input box:</p>
<p>Name: <input type="text" data-ng-model="name"></p>
<p data-ng-bind="name"></p>
</div>
이 두 용어의 기본적인 차이점은 data-ng-app가 HTML의 유효성을 검사하지만 후자는 그렇지 않은 것입니다. 자세한 내용은 w3Validator를 사용해보십시오.