어쩌면 그저 기본적인 오해 일 수도 있지만 Angular 및 ng-show와 관련된 작은 문제가 있습니다.기능에 따라 Angular ng-show가 표시 될 수도 있습니다.
3 개의 입력 필드가있는 간단한 양식이 있습니다. 정보 텍스트로 div를 보여주고 싶지만 세 개의 입력 필드가 모두 설정되어 있어야합니다.
내 컨트롤러처럼 보이는 (controllerAs-구문으로, 별칭은 'myControllerCtrl이'입니다) :
var vm = this;
vm.annualConsumption = null;
vm.calorificVal = null;
vm.zNumber = null;
vm.checkIfAllValuesAreSet = checkIfAllValuesAreSet;
function checkIfAllValuesAreSet() {
return vm.annualConsumption && vm.calorificVal && vm.zNumber;
}
그래서 내 사업부에
ng-show="myControllerCtrl.checkIfAllValuesAreSet()"
을 넣어. 그러나 모든 입력 필드를 설정하면 div가 표시되지 않습니다! 함수의 조건을 직접 ng-show에 넣으면
ng-show="vm.annualConsumption && vm.calorificVal && vm.zNumber"
과 같이 작동합니다. 그래서 제 질문은 : 왜 ng-show의 표현식으로 함수를 사용할 수 없습니까?
것은'시도 NG 쇼 = "checkIfAllValuesAreSet()"'컨트롤러는 이미 범위를 갖는 $ scope' – Pankaj
'이 기능을 첨부대로하려고 단지 겨 쇼 = "checkIfAllValuesAreSet()" –
당신이 그것을 수정하는 경우가 작동합니다 to ng-show = "vm.checkIfAllValuesAreSet()"별명은 'myControllerCtrl'이 아니라 'vm'입니다. 두 번째 조건이 작동하는 이유는 ... –