반응형
ngModel의 $render는 언제 AngularJS에서 호출됩니까?
이 공식 예에서는 다음 코드가 무엇을 하고 있습니까?
// model -> view
ctrl.$render = function() {
elm.html(ctrl.$viewValue);
};
내가 볼 때,$render
는 호출되지 않습니다.
언제$render
실제로 호출되었습니까?
갱신하다
처럼 보인다$render
모델이 변경될 때마다 호출됩니다.그러나 모델이 초기 값을 얻으면 호출되지 않습니다.초기값의 렌더링을 제어하는 방법이 있습니까?
맞다$render
모델이 변경되면 Angular에 의해 호출됩니다.$render 문서에 따르면:
$syslog()
보기를 업데이트해야 할 때 호출됩니다.ng-model 디렉티브 사용자는 이 메서드를 구현할 것으로 예상됩니다.
어떻게 하는지 보면 도움이 된다.$render
호출되다ngModelWatch
(이것은, 항상,ngModel
변경).여기에서는, 라고 불리는 것을 볼 수 있습니다.$viewValue
갱신, 그리고 마지막으로$render
라고 부릅니다.
$scope.$watch(function ngModelWatch() {
var value = ngModelGet($scope);
// if scope model value and ngModel value are out of sync
if (ctrl.$modelValue !== value) {
var formatters = ctrl.$formatters,
idx = formatters.length;
ctrl.$modelValue = value;
while(idx--) {
value = formatters[idx](value);
}
if (ctrl.$viewValue !== value) {
ctrl.$viewValue = value;
ctrl.$render();
}
}
return value;
});
}];
초기값이 호출되지 않는 이유는 디렉티브 끝에 다음 행이 있기 때문입니다.
// load init value from DOM
ctrl.$setViewValue(elm.html());
트리거하지 않고 뷰 값을 수동으로 업데이트합니다.ngModelWatch()
따라서 이 과정을 거치지 않고$formatters
또는$render
. 그 행이 대신일 경우:
scope.content=elm.html();
아시겠죠?$render
Angular에 의해 호출되어 그것이 트리거가 된다.$watch
언급URL : https://stackoverflow.com/questions/21083543/when-ngmodels-render-is-called-in-angularjs
반응형
'programing' 카테고리의 다른 글
AngularJS - 필터의 빈 결과에 대한 자리 표시자 (0) | 2023.03.18 |
---|---|
mongodb 로컬 서버를 시작할 수 없습니다. (0) | 2023.03.18 |
WordPress API Permission Callback – 사용자가 로그인하고 있는지 확인합니다. (0) | 2023.03.18 |
woocommerce에서 제공하는 rest api를 통해 카트에 제품을 삽입하는 방법은 무엇입니까? (0) | 2023.03.18 |
WordPress 테마 편집기가 없습니다. (0) | 2023.03.18 |