처음으로 컨트롤러를 구문으로 구현하려고했는데 내 함수가 템플릿에서 전달하는 컨트롤러 변수를 변경하지 않는 문제에 직면했습니다. 대신 매개 변수를 로컬 변수로 인식합니다. $ scope를 사용하면 이런 일이 발생하지 않습니다.구문으로 컨트롤러가 컨트롤러의 변수 값을 변경하지 않습니다
여기 내 컨트롤러가 있습니다.
angular
.module('app')
.controller('baseCtrl', baseCtrl);
function baseCtrl() {
base = this;
base.myVar = 'string_1';
base.myFunction = myFunction;
function myFunction(value) {
value = 'string_2"';
}
}
다음은 내 템플릿입니다.
<div ng-controller="baseCtrl as base">
<button ng-click="base.myFunction(base.myVar)">Button</button>
</div>
클릭 후 base.myVar가 "string_1"에서 "string_2"로 변경되어야하지만 이는 발생하지 않습니다.
누군가 내가 어떻게 알아낼 수 있는지 알고 있습니까?
*하지, 차이가 무엇을 할 이유 * ... "나는 $ 범위를 사용하는 경우이 일어나지 않을 것입니다"? 귀하의 함수는 여전히 로컬 변수를 변경하고 있습니다 – charlietfl
나는 base가 JavaScript에서 뭔가 일 수 있다고 생각합니다. 어쩌면 그것과 관련이 있을까요? –