IT박스

AngularJS : ng-click이 "좋은 방법"입니까?

itboxs 2020. 12. 13. 09:06
반응형

AngularJS : ng-click이 "좋은 방법"입니까? AngularJS에 ng- {event}가없는 이유는 무엇입니까?


저는 AngularJS를 배우기 시작했고 AngularJS의 몇 가지 개념으로 어려움을 겪었습니다. 누군가 나에게 몇 가지 요점을 설명해 주시면 좋을 것입니다 ...

  1. ng-click기술적으로는 onclick( 여기 참조 ) 와 동일하지 않지만 둘 다 마크 업에 배치 된다는 것을 이해합니다 . 나는 그것이 "나쁜 습관"이라고 생각 했습니까? 대부분의 사람들이 이것이 "나쁘다"고 말한다면 왜 이것이 AngularJS의 핵심 개념 중 하나입니까? JavaScript에서 DOM 요소를 선택하고 마크 업에 논리를 배치하지 않는 것이 더 낫다고 생각했습니다.

  2. ng-clickAngularJS에서 클릭 이벤트에 반응하는 올바른 방법이 있다면 다른 DOM 이벤트로 무엇을해야합니까? 과 같은 다른 지시문이 여러 개 ng-mouseover있지만 모든 DOM 이벤트에 AngularJS와 동등한 것이있는 것은 아닙니다. AngularJS에서 '드롭'이벤트를 어떻게 처리합니까 (따라서 AngularJS 방식으로-정상적인 방식이 아님)? 명확하게 말하면, 파일을 내 웹앱으로 드래그하고 싶습니다 .

대단히 감사합니다, Pipo


대부분의 사람들이 이것이 "나쁘다"고 말한다면 왜 이것이 AngularJS의 핵심 개념 중 하나입니까?

Unobtrusive JavaScript 를 정말 좋아하는 사람들 은 그것이 나쁘다고 말할 수 있습니다. Angularian (및 유연한 배경을 가진 사람들)은보다 선언적인 접근 방식에서 가치를 봅니다.

"Angular는 UI를 구축하고 소프트웨어 구성 요소를 함께 연결할 때 선언적 코드가 명령 적 코드보다 낫다는 믿음을 바탕으로 구축되었습니다. 응용 프로그램 상태가 변경 될 때 UI가 어떻게 변경되어야하는지 선언적으로 설명함으로써 낮은 수준의 DOM 조작에서 벗어날 수 있습니다. 작업.- 개요 문서

또한 참조 하지 겸손한 자바 스크립트의 원칙에 부트 스트랩, Angular.js에 사용되는 데이터 속성 옵션 및 Ember.js 충돌을합니까?

다른 DOM 이벤트로 무엇을해야합니까?

자신의 지시문을 작성하여 청취하거나 다른 사람이 이미 작성한 지시문을 찾으십시오. Angular는 자신 만의 지시문을 작성하여 브라우저가 할 수있는 작업을 확장 할 수있는 기능을 제공합니다.

업데이트 : 아래 주석에서 Tim Stewart는 Angular에서 기본적으로 지원하지 않는 이벤트에 콜백을 바인딩 할 수있는 AngularUI의 ui-event를 언급합니다 .


본질적으로 Angular는 제대로 작동하려면 마크 업에 요소가 필요합니다. 또한 이러한 요소는 대부분 변경 될 때마다 "컴파일"되어야합니다. 따라서 자바 스크립트에 관계없이 이미 다소 "눈에 띄는"것입니다. 단순히 마크 업을 교체 할 수 없으며 jQuery와 같은 방식으로 모든 것을 자동 바인딩 할 수 있습니다.

엄밀히 말하면, 눈에 잘 띄지 않는 JavaScript : 1. 코드를 깔끔하게 정리하고 스크립트를 쉽게 유지 관리하기 위해 구조와 동작을 분리합니다. 2. 브라우저 비 호환성을 선점합니다. 3. 깔끔하고 의미있는 HTML 레이어를 사용합니다 ( Wikipedia ).

확실히 Angular가 아닙니다. 모든 것에 양방향 바인딩을 달성하기 위해 그들은 jQuery가하는 방식으로 클래스 이름이나 ID를 사용하는 대신 DOM에서 사용자 지정 바인딩 지점을 만들기로 선택했습니다. (다소 비표준 접근 방식이지만 분명히 작동합니다.)

그러나 그것을 생각하는 실제 방법은 다음과 같습니다. 기본적으로 마크 업의 각 제어 섹션은 더 이상 실제 HTML이 아닙니다. 이제는 정말 템플릿에 가깝고 렌더링을 준비하는 엔진과의 상호 작용이 필요합니다. 따라서 눈에 잘 띄지 않는 전통적인 규칙은 실제로 적용되지 않습니다 ... (FWIW, 저는 요소가 페이지에 추가 될 때 자동으로 이벤트에 요소를 바인딩하는 jQuery.on () 함수의 열렬한 팬 / 사용자입니다. 매우 깔끔하고 유연합니다. IMHO, Angular에 유사한 메커니즘이 있었으면 좋겠습니다. 동일한 이벤트 핸들러를 자동으로 호출하는 페이지의 여러 위치에있는 항목에 클래스를 추가하는 것을 좋아합니다. 다행 이네요.하지만 저는 빗나갑니다 ...)

저에게 더 큰 문제는 진보적 인 디자인입니다. 웹 페이지는 JavaScript를 사용하지 않아도 작동합니까? 누구든지 그것에 대해 정말로 관심이 있습니까? 흠 ...

참고 URL : https://stackoverflow.com/questions/14346073/angularjs-is-ng-click-a-good-practice-why-is-there-no-ng-event-in-angularj

반응형