찾다

 >  Q&A  >  본문

angular.js -Angularjs의 양방향 바인딩은 어떻게 구현됩니까?

Angularjs를 사용해보신 분들은 양방향 바인딩을 아실텐데요, 사용하기 매우 편리한데 내부적으로는 어떻게 구현되나요?

뷰가 변경될 때 데이터를 업데이트하는 것은 이해하기 쉽고, 대부분의 사람들은 이를 시뮬레이션하는 방법을 알고 있습니다. 하지만 데이터가 변경될 때 뷰를 업데이트하는 경우에는 데이터가 변경되었는지 어떻게 판단하느냐가 핵심입니다. . .

이전에 oldValue의 복사본을 저장한 다음 이를 정기적으로 탐색하고 newValue와 oldValue를 비교하고 변경된 경우 업데이트 및 기타 관련 작업을 수행하는 것과 유사하다고 생각했습니다. . .

그런데 이게 괜찮을 것 같나요? 오랫동안 생각해 본 결과 그다지 믿을만하지 않다는 느낌이 들었습니다. 모든 형제 자매들이 주저하지 말고 가르쳐 주시길 바랍니다. ##제목

高洛峰高洛峰2784일 전605

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

  • PHP中文网

    PHP中文网2017-05-15 17:01:32

    양방향 바인딩과 유사한 간단한 예제 구현

    HTML

    으아악

    스크립트

    으아악

    보기가 변경되면 데이터 업데이트

    이것은 매우 간단합니다. myModel 명령을 컴파일할 때 이벤트를 바인딩하기만 하면 됩니다

    으아악

    데이터 변경 업데이트 UI

    스코프 내부에는 관찰자와 다이제스트가 있습니다

    으아악

    스코프에 값을 할당하고 다이제스트를 트리거하면 UI가 동시에 업데이트됩니다

    으아악

    범위에 값을 직접 할당하면 UI가 업데이트되지 않습니다. 대부분의 경우 Angular는 다이제스트가 트리거될 때만 UI를 업데이트하므로 범위만 제공할 수 있다는 인상을 줍니다. 결과적으로 이해할 수 없는 상황이 발생합니다. 예를 들어

    으아악

    setTimeout을 직접 사용하면 결과적으로 UI가 업데이트되지 않으며 다음과 같은 처리를 해야 합니다

    으아악

    또는 다이제스트를 트리거하는 데 도움이 되는 각도의 $timeout을 사용하세요

    으아악

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-15 17:01:32

    검색해 보세요. 질문에 답하는 데 도움이 될 만한 기사가 많이 있습니다. 먼저 검색한 다음 질문하세요.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-15 17:01:32

    먼저 말씀드리자면, 저는 주제에서 언급된 Anglejs에 대해 잘 알지 못합니다. 이는 약간 잘못된 것입니다.
    Knockout에도 동일한 양방향 데이터 바인딩 기능이 있습니다. 관찰자 모드에서 구현됩니다. 관찰된 개체를 생성한 후 set 메서드를 사용하여 값을 할당하면 해당 개체에 관심이 있는 관찰자에게도 알립니다. 양방향 데이터 바인딩의 효과.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 17:01:32

    angular1은 더티 체크입니다. . 이로 인해 성능 문제도 발생합니다

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-05-15 17:01:32

    AngularJS는 양방향 데이터 바인딩 메커니즘을 어떻게 구현하나요?

    회신하다
    0
  • 迷茫

    迷茫2017-05-15 17:01:32

    可以参考:
    http://teropa.info/build-your-own-angular/build_your_own_angularjs_sample.pdf

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