У меня есть очень простой сценарий, в котором, в котором у меня есть модуль с одним контроллером :FormData не меняется с ngChange крючком
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']);
Вы уверены, что используете '$ scope.init()' в своем контроллере после того, как определите его? –
Да 'init()' работает, Shoms был прав на тип ввода. – Ropstah