자세한 설명:
$watch는 드롭다운 상자를 모니터링하며 사용자가 드롭다운 상자의 옵션을 클릭할 때만 프런트엔드가 백엔드에 데이터 업데이트를 요청할 것으로 예상됩니다.
현재 문제는 다음과 같습니다.
웹 페이지가 로드되고 드롭다운 상자가 처음 나타날 때 $watch가 자동으로 한 번 실행됩니다. ng 메커니즘은 로딩을 사용자 클릭으로 간주합니다.
이 경우 $watch 자동 실행을 비활성화하는 방법을 알고 싶습니다
迷茫2017-05-15 17:06:22
초대해주셔서 감사합니다.
우선, 표현의 작은 흠을 수정할 수 있을까요?
"$watch는 드롭다운 상자를 모니터링합니다"라고 말씀하셨는데, ng
는 양방향 데이터 바인딩을 구현하는 프레임워크이고 $watch
는 여기서 불가능합니다. DOM 요소 드롭다운 상자
를 모니터링합니다. 적절한 표현은 "드롭다운 상자의 선택된 값을 가리키는 $watch에서 모니터링하는 표현"으로 작성하는 것이 더 정확할 수 있습니다(중국어를 잘하는 친구는 더욱 최적화할 수 있습니다). ng
是一个实现数据双向绑定的,具有声明式API的框架,这里的$watch
是不可能去监视一个DOM元素下拉框
的。合适的用词可以写作"$watch监视的一个指向下拉框所选值的表达式"更为准确(语文好的朋友可以再优化)。
在提问时,我们往往过分关注自己想知道问题的答案,而忽略表达方式,结果经常无疾而终,这类题目在sf中非常常见,提问人描述含糊其辞,令人无从做答。其实题主的描述还能看懂,只是有感而发多说几句。
言归正传,既然不想对数据初始化的那一次$watch
$watch
처리를 원하지 않으니 이렇게 판단하시면 됩니다🎜
으아악習慣沉默2017-05-15 17:06:22
초기화 호출을 피하려면 ngChange를 사용하세요
주의:
ngModel과 함께 사용해야 합니다
프로그램을 사용하여 ngModel의 값을 변경해도 ngChange가 실행되지 않습니다
사용자가 입력을 변경할 때 주어진 표현식을 평가합니다. 변경이 끝날 때(일반적으로 사용자가 양식 요소를 떠나거나 Return 키를 누를 때)에만 트리거되는 JavaScript onchange 이벤트와 달리 표현식은 즉시 평가됩니다.
ngChange 문서