는 내가 선택 태그가 :jquery에서 변경을 트리거하는 방법은 무엇입니까? 다음과 같이
<select ng-change="doSomething()" ng-model="myModel"> </select>
을하고 나는 그것을 (콤보)에 대한 jQueryUI 제어를 사용하고, jQuery를에서 트리거 한 이벤트 "변화"() 해봐요을 트리거하지 않습니다.
외부에서 각도 변화를 트리거하는 방법을 알고 있습니까?
는 내가 선택 태그가 :jquery에서 변경을 트리거하는 방법은 무엇입니까? 다음과 같이
<select ng-change="doSomething()" ng-model="myModel"> </select>
을하고 나는 그것을 (콤보)에 대한 jQueryUI 제어를 사용하고, jQuery를에서 트리거 한 이벤트 "변화"() 해봐요을 트리거하지 않습니다.
외부에서 각도 변화를 트리거하는 방법을 알고 있습니까?
끔찍한 사례이지만, angular.element
을 사용하고 대상 컨트롤러 내에있는 요소에서 scope
을 얻을 수 있습니다.
예 :
<div ng-controller="myApp">
<span id="test"></span>
</div>
자바 스크립트 :
var scope = angular.element("#test").scope();
scope.doSomething();
귀하의 scope
변수가 이제 myApp
컨트롤러에 정의 된 모든 메소드에 액세스 할 수 있습니다.
질문은 코드를 실행하는 방법이 아니라 변경 이벤트를 트리거하는 방법입니다. 나는 이것을하기에 각도 친화적 인 방법을 발견했다. 나는 그것을 변경 한 다른 입력 값을 변경하는 jQuery UI 슬라이더가 있습니다. 그 비밀은 angle.element로 바꾸면 이제 triggerHandler라는 메서드에 액세스 할 수 있다는 것입니다. 내가 본 바로는,이 사용하는 나쁜 관행으로 간주되지 않을 것이다 :
angular.element(document.getElementById('test')).triggerHandler('change');
tymeJV의 대답은 직접 jQuery를 사용하지 않고 angular.element("#test")
을했다,하지만 난 콘솔 오류 및 방법 깨진 기능을 얻었다. 이 버전은 종속성없이 작동합니다.
이것이 끔찍한 일이라면 서버의 기본값으로 채워진 입력 요소를 어떻게 처리해야할까요? – Lawyerson
@BauceLawyerson - 입력 된'value' 속성을 채우지 말고 Angular를 통해 서버 값을 파싱하고 올바른'ngModel' 변수에 할당하십시오. – tymeJV
이것은 디버그 모드에서만 작동합니다. angle.element ("# id"). 해제 모드에서는 scope()를 사용할 수 없습니다. "DOM에서 범위 가져 오기"절을 참조하십시오. [link] (https://docs.angularjs.org/guide/scope) – Cesar