私は非常に基本的なシナリオを持っています.1つのコントローラを持つモジュールがあります:
var myModule = angular.module('myModule', []);
myModule.controller('myModuleCtrl', function ($scope, $http) {
$scope.formData = {url:'',title:'',source:''};
$scope.init = function() {
$scope.formData.url = 'Test';
$scope.formData.title = '';
$scope.formData.source = '';
};
$scope.manageUrl = function() {
alert('update');
};
});
私の見解では、formData
オブジェクトのプロパティをいくつかのフォーム フィールドにフックしようとしていますngModel
。init()
ただし、メソッドの実行後に入力値が更新されません。ngChange
ディレクティブを追加して$scope.manageUrl()
メソッドに接続すると、最初のキーストローク/入力の変更後に一度だけ実行されます。
ここで何か不足していますか?以前は両方のディレクティブを問題なく使用しました。モジュール/コントローラーのセットアップに何か問題があると思いますか?
これは私のビューがどのように見えるかです:
<div ng-app="myApp" ng-controller="myModuleCtrl" ng-init="init()">
<div>
<form name="myForm">
<div>
<input type="url" ng-model="formData.url" ng-change="manageUrl()" />
</div>
</form>
</div>
</div>
そして、私のapplication.js ブートストラッパー:
var app = angular.module('myApp', ['myModule']);