Angularjs < = 1.2에 대해 "한 번 바인딩"을 만드는 방법을 알아 내려고하고 있습니다. 나는이 answer이 자신의 bindOnce 지시문을 만드는 방법을 설명하는 것을 발견했습니다. 다음 지시문을 사용할 때 표시됩니다 :
app.directive('bindOnce', function() {
return {
scope: true,
link: function($scope) {
setTimeout(function() {
$scope.$destroy();
}, 0);
}
}
});
데이터가 한 번 바인딩됩니다. 그러나, 나는 $$ 관측통이 아직 켜져 있음을 볼 수 있습니다. JSBin 다음을 살펴보십시오. 콘솔에서 주석 처리 된 감시자 카운트 코드를 실행하면 감시자가 아직 살아 있음을 확인할 수 있습니다.
EDIT : 어떤 이유로 각도 1.3의 동일한 지시문을 사용할 때 관찰자 수는 0으로 변경됩니다.
angular-mocks.js
testabilityPatch.js
https://github.com/Pasvaz/bindonce에서 보셨습니까? – james
@ 존 스노우 : 나는 그것을 바꿨다. "github.com/Pasvaz/bindonce"에 관해서 - 그것은 일을합니다. 나는 뒤에서 일어나는 일을 이해하기를 원했다. –