2013-03-13 1 views
1

Angular 앱에서 JS 플러그인을 실행하려고합니다. 그래서 나는 두 개의 파일을 가지고 있습니다 : index.html과 view.html (템플릿). 후자는 index.html 내의 ng-app DIV에로드 된 부분입니다.AngularJS 앱의 템플릿에 JS 플러그인이 작동하지 않습니다.

이제 jQuery와 플러그인은 index.html에 선언되어 있습니다. view.html (템플릿)의 구현은 기술적으로 Angular로 동적으로 생성되기 때문에 .on() 메서드를 사용하는 경우에도 선언에서이를 볼 수 없습니다. 문제는 JavaScript가 동적으로 생성 된 콘텐츠를 볼 수 없다는 것과 어떻게 든 관련이 있다고 생각합니다.

작동 방법에 대한 제안을 여기에서 얻으려고합니다. 부분 (즉, view.html)에서 스크립트 선언을 옮겨 보려고했지만 아무 소용이 없습니다.

+2

참조 [내가 jQuery를 배경 만약 내가 "AngularJS와 생각"어떻게?] (http://stackoverflow.com/questions/14994391/how-do-i-think-in하는 데 도움이 jquery-background-if-i-have-a-jquery-background). 그런 다음 [Noob Handbook] (https://github.com/angular/angular.js/wiki/Noob-Handbook)을 통해 몇 가지 시도를하고 [UI Bootstrap] (http : //angular-ui.github. com/bootstrap /) 및 [Angular Strap] (http://mgcrea.github.com/angular-strap/)에서 Angular로 jQuery 플러그인을 사용하는 방법을 참조하십시오. – Stewie

답변

1

각도가있는 jquery (또는 다른 플러그인)를 통합하려면 다르게 생각해야합니다. 특히 양방향 데이터 바인딩을 다룰 때. jquery 플러그인이 각도 모델을 변경하면 $ scope.apply()를 사용하여 모델의 범위를 알릴 필요가 있습니다 (각도도 참조).

각도 조정 권장 사항은 DOM 조작 및 jquery 플러그인을 각도 지시문에 래핑하는 데 사용됩니다. 통합하지 않고 각진 애플리케이션의 일부로 jquery 플러그인을 사용하는 것은 괜찮습니다. 그러나 위험한 것과 동일한 것을 만지면 플러그인을 사용할 수 있습니다. 래퍼 지시문을 작성하는 것은 초보자에게 어려울 수 있습니다. angular ui의 'jq'지시문을 보면서 (상자 멤버 일 때) 상자에서 꺼내거나 플러그인을 래핑하는 방법에 대한 아이디어를 줄 것을 권합니다. 이 사이트에는 단순하고 복잡한 지시문이 많이 있습니다.

예제 (plunker 또는 jsfiddle)를 제공하면 사람들이 더 잘 지원할 수 있습니다.

희망이

관련 문제