DOM 창 콜백이 필요한 레거시 코드와 AngularJS 컨트롤을 통합하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-19 10:34:29
원래의
211명이 탐색했습니다.

How to Integrate AngularJS Controls with Legacy Code Requiring DOM Window Callbacks?

레거시 코드에서 AngularJS 호출

문제:
AngularJS 컨트롤을 레거시 Flex와 통합해야 합니다. DOM 창에 콜백을 연결해야 하는 애플리케이션.

해결책:

AngularJS 컨트롤러가 프레임워크 외부에서 수신할 수 있는 이벤트를 전달하려면 다음 단계를 따르세요.

  1. 범위 및 인젝터 가져오기:

    • angular.element(domElement).scope()를 사용하여 HTML의 현재 범위를 가져옵니다. AngularJS 애플리케이션을 업데이트하는 데 사용되는 요소입니다.
    • angular.element(domElement).injector()를 사용하여 현재 앱 인젝터에 액세스합니다.
  2. AngularJS 서비스 얻기:

    • 인젝터에서 업데이트하려는 AngularJS 서비스를 얻습니다.
  3. AngularJS 함수 호출:

    • AngularJS 내에서 $apply(function(){ ... })의 범위에 대한 모델 또는 메서드 호출에 대한 모든 업데이트를 래핑하여 적절한 변경 전파를 보장합니다. .

사용 예:

// Get the AngularJS scope and service
var scope = angular.element(document.getElementsByTagName('body')[0]).scope();
var service = scope.injector().get('myService');

// Invoke an AngularJS method
scope.$apply(function () {
  service.update();
});
로그인 후 복사

추가 참고 사항:

  • AngularJS 모델 또는 범위 메서드 호출에 대한 변경 사항은 $apply()로 래핑되어야 합니다.
  • angular.element(domElement).controller()를 사용하여 HTML 요소와 연결된 AngularJS 컨트롤러에 액세스할 수 있습니다.

위 내용은 DOM 창 콜백이 필요한 레거시 코드와 AngularJS 컨트롤을 통합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿