0
ng-modelを使用してキャプチャしているDOMに入力フィールドがあります。私のコントローラでコントローラの配列に値をプッシュ
、私は配列があります。私の見解では
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;
}
};
});
を、私は、入力フィールドがあります。
<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
が自動的に使用するためにモデルを更新することを考えましたコントローラ。 DOM内でdot notation
を使用すると、これらの値が配列に格納されると考えられました。
これらの値を更新すると、フォームのsubmit
ボタンは無効のままです(disableForm()はtrueを返します)。
DOMで変更または更新された場合、これらの値をself.manualEntry
にプッシュするにはどうすればよいですか?
まず、コントローラの名前はNG-モデルタグに表示されません。ですから、それは:ng-model = "manualEntry.firstName"でなければなりません。あなたのng-disabledで同じです。 そして、なぜ "$ scope.manualEntry"をそれほど使わないのですか? manualEntry.firstNameとmanualEntry.lastNameは、$ scope.manualEntry {firstName: ''、lastName: ''}のようなオブジェクトを持っていることを意味します。 –
なぜオブジェクトの代わりに配列を使用していますか? –
@ M.Be OPはスコープの代わりにコントローラを使用しています。完全に有効で、推奨オプションです。 –