범위 변수가 $scope.test
입니다. 템플릿에서 인수로 호출 된 함수에서이 변수를 전달한 다음 컨트롤러에서 변경하려고하면 원래 $scope.test
이 변경되지 않은 것처럼 보입니다. 지역 변수 인 foo 만 변경됩니다. 그러나 foo가 $scope.test
에 대한 참조가 아닌가요?템플릿에서 호출 된 함수에서 전달 된 컨트롤러 범위 변수가 매개 변수가 변경 될 때 원래 컨트롤러 변수를 변경하지 않습니다.
var mod = angular.module('app', []);
mod.controller('myCtrl', function($scope) {
$scope.test = 'test';
$scope.doSomething = function(foo) {
foo = 'scope.test should change';
}
})
여기서는 위의 컨트롤러에있는 doSomething 함수에 테스트를 전달합니다. http://plnkr.co/edit/JBsos0qVJP47WgfD9Fee?p=preview
나는이에게 자신을 사용하지 않는,하지만 앤드류는 언급 한 것을 시도하고 작동하는 것 같다 않을 것 : http://plnkr.co/edit/FByCft2Pmgo2dOI4k7eY?p=preview –
아, 물론! 나는 이전에 비슷한 것을 성취했다는 것을 알았지 만, 당신이 말한 바와 같이 참조로 전달되는 대상을 항상 가지고 있음을 깨닫지 못했습니다. – sq1020