ng-model을 사용하여 캡처하는 DOM에 입력 필드가 있습니다. 내 컨트롤러에서컨트롤러의 배열에 값 밀어 넣기
, 내가 배열이 있습니다
<form>
<input placeholder="John" ng-model="mainCtrl.manualEntry.firstName"/>
<input placeholder="Smith" ng-model="mainCtrl.manualEntry.lastName"/>
</form>
<button type="submit"
ng-disabled="mainCtrl.disableForm()"
title="Submit">Submit
</button>
내가 $scope
가 자동으로 사용하기 위해 모델을 업데이트한다고 생각 : 내보기에
app.controller('mainCtrl', function() {
// set an empty array
self.manualEntry = [];
/**
* ensure form validation
* @returns boolean - ng-disabled value
*/
self.disableForm = function() {
if (self.manualEntry.length <= 0) {
return true;
}
else {
return false;
}
};
});
를, I는 입력 필드가 컨트롤러. 나는 DOM에서 dot notation
을 사용하여 배열에이 값들을 넣을 것이라고 생각했다.
이 값을 업데이트하면 양식의 submit
버튼이 비활성화 된 상태로 유지됩니다. 즉, disableForm()은 true를 반환합니다.
DOM에서 변경되거나 업데이트 될 때이 값을 self.manualEntry
으로 어떻게 푸시 할 수 있습니까?
첫째, 컨트롤러의 이름은 NG 모델 태그에 나타나지 않아야합니다. 따라서 : ng-model = "manualEntry.firstName"이어야합니다. 너의 장애인과 같은. 그런 다음 "$ scope.manualEntry"를 사용하지 않는 이유는 무엇입니까? manualEntry.firstName과 manualEntry.lastName은 $ scope.manualEntry {firstName : '', lastName : ''}와 같은 객체를 가지고 있기 때문에 –
왜 객체 대신 배열을 사용하고 있습니까? –
@ M.Be OP는 범위 대신 컨트롤러를 사용합니다. 완벽하게 유효하고 권장되는 옵션입니다. –