2016-07-26 4 views
1

나는 종종 $ scope가 더 이상 모범 사례가 아니라고 들었다. 어쨌든 우리는 컨트롤러를 구문으로 사용하고 $ scope를 종속성으로 전달하지 않습니다.

물론 $ 범위가 정의되지 않은 오류가 발생합니다. 나는 또한 시도 단지

passwordForm.newPassword.$setValidity(*my conditions here*); 

vm.passwordForm.newPassword.$setValidity(*my conditions here*); 

가 어떻게이 입력을 참조 할 수 있습니다?

답변

0

컨트롤러 인스턴스 속성으로 양식 이름을 설정해야합니다.

this.passwordForm.newPassword.$setValidity(*my conditions here*); 
+0

감사합니다. 그건 사실 나를 위해 작동하지 않았다. 내 컨트롤러는 이미 VM으로 정의되어 있으므로 vm.passwordForm과 {{vm.passwordForm}}을 사용해 보았습니다. 하지만 여전히 각도가 있습니다 .js : 13550 TypeError : 정의되지 않은 'newPassword'속성을 읽을 수 없습니다. – CaptainOfTheSky

+0

코드를보다 가깝게 보거나 관련 코드를 게시하십시오. –

+0

나는 네가 한 말을 정확히했다. 컨트롤러가 이미 VM으로 정의되어 있습니다.

CaptainOfTheSky

0

이 유 상태/경로/템플릿에서 controllerAs이 있습니까 컨트롤러에서

<form ng-controller="theController as VM" name="VM.passwordForm" id="passwordForm"> 
    <input type="password" id="newPassword" name="newPassword" ng-minlength="8" data-ng-model="vm.pwdata.newPassword" required> 

? 예인 경우이 변수를 템플릿 내부에서 사용하고 컨트롤러 내부에서 'this'를 사용하십시오.

var vm = this; 
vm.password ..... 
관련 문제