찾다

 >  Q&A  >  본문

angular.js - angularjs 的操作dom一般如何写在指令或者服务中?

用angular一直将数据的操作在controller中执行,代码看上去比较臃肿并且难以维护,是否有最佳实践的案例~感谢~

怪我咯怪我咯2743일 전667

모든 응답(3)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-05-15 16:53:28

    어떤 의미에서 보면 DOM 작업은 지침에만 나타날 수 있습니다. 당신이 있어야 할 마지막 장소는 봉사하는 곳입니다. Angular는 테스트 중심 개발을 옹호합니다. 서비스나 컨트롤러에서 DOM 작업이 발생하면 테스트를 통과할 수 없다는 의미입니다. 물론 이것은 단지 하나의 점일 뿐이며 중요한 것은 양방향 데이터 바인딩인 Angular를 사용하면 많은 DOM 작업을 처리하지 않고도 비즈니스 로직 처리에 집중할 수 있다는 이점 중 하나입니다. Angular 코드가 여전히 다양한 DOM 작업으로 가득 차 있다면 개발에 jquery를 직접 사용하는 것은 어떨까요?

    저는 또한 여러분에게 도움이 될 수 있는 예제를 직접 작성했습니다: https://github.com/dolymood/angular-example

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-05-15 16:53:28

    DOM을 간단하게 조작하려면 디렉티브에 넣어두는 것이 좋고, DOM에 해당하는 데이터 크루드의 경우에는 템플릿을 통해 컨트롤러에 바인딩한 후 컨트롤러에서 직접 스코프를 조작하는 것이 좋습니다. 응답 애니메이션은 지시문에 바인딩된 다음 컨트롤러에서 이벤트를 브로드캐스팅하여 지시문의 해당 애니메이션을 제어할 수 있습니다. 다음은 제가 2014년에 Angle을 시작했을 때 보았던 비교적 완전한 각도 프로젝트입니다. . 도움이 되셨으면 좋겠습니다

    https://github.com/atian25/wandoujia-satan

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 16:53:28

    1. 보기 표시와 관련된 모든 논리는 지시문에만 배치됩니다.
    2. 페이지 데이터와 관련된 모든 로직은 페이지에 바인딩된 컨트롤러에 배치됩니다.
    3. 모든 공통 데이터 로직이 서비스됩니다.

    Angular는 실제로 원래 백엔드에서 수행된 일부 작업 로직을 프런트엔드로 가져옵니다.

    전형적인 예: todomvc 및 소스 코드

    회신하다
    0
  • 취소회신하다