他のビューで再利用できるコントローラを作成したいと思います。 AngularJS - コントローラがng-modelオブジェクトのプロパティを読み取れません。
問題は、それは私がフィールド上に変更を加えない限り、ng-model
に設定されているプロパティを読み取ることができないので、私は、その、簡単な検証を行うことができないということである(このコントローラは、テンプレートとして使用されます)プロパティがそのオブジェクトに追加されます。
ng-init="object.fieldName = null"
を私のビューのすべてのフィールドに入力したくないのは、それが良い方法ではないと思うからです。私は$watch
を使用してみましたが、オブジェクトがまだある{}
に等しい。ここに私のコントローラの:
angular.module('practiceApp')
.controller("CreateModalController", function($scope, items, defaultService) {
function initialize() {
$scope.object = {}; // <---- this should contain the ng-model object properties
$scope.defaultService = defaultService;
$scope.modalTitle = items.modalTitle;
$scope.$watch('object', function(newValue, oldValue) {
console.log(newValue);
}, true);
}
initialize();
});
は、ここに私の見解です:
<form name = "objectForm"
role = "form">
<input type="text"
ng-model="object.firstName"
class="form-control"
placeholder="First Name"
ng-class="{'error-textfield': defaultService.isNotValid(object.firstName)}"
required>
<input type="text"
ng-model="object.lastName"
class="form-control"
placeholder="Last Name"
ng-class="{'error-textfield': defaultService.isNotValid(object.lastName)}"
required>
</form>
電流出力=>object: {}
希望の出力=>object: {firstname: undefined, lastName: undefined}
ビュー内で初期化関数を呼び出すことはありません。 –
「ビューで初期化関数を呼び出す」とはどういう意味ですか?上記のコードを更新して完成させましたが、コントローラの初期化関数を呼び出すだけです。 – KennethC