2016-06-28 58 views
2

實例內改變 - 我有像一些輸入形式:在AngularJS 1.5我怎麼能拿事件時,一些模板組件的

<form> 
<input type="text" ng-model="$ctrl.inputText"> 
<input type="number" ng-model="$ctrl.inputNumber"> 
</form> 

我的應用程序基於組件,所以在我的控制,我需要調用的事件時數據我的輸入已被改變。 方法$ onChanges僅在綁定var將被更改並且不會影響模板內發生更改時才起作用。

+0

那麼你的控制你看起來像? –

+0

我的控制器現在是空的 –

回答

0

在控制器:

$scope.$watch("myForm.$dirty", function() { 

    $scope.myForm.$setPristine(); 
}); 

HTML:

<form name="myForm"> 
<input type="text" ng-model="$ctrl.inputText"> 
<input type="number" ng-model="$ctrl.inputNumber"> 
</form> 
3

您可以簡單地使用ng-change

var myComponent = { 
 
    scope: {}, 
 
    bindings: {}, 
 
    controller: function() { 
 
    this.inputText = "boo"; 
 
    this.inputNumber = 666; 
 
    this.changeEvent = function(val) { 
 
     console.log("change event" + val); 
 
    } 
 
    }, 
 
    template: [ 
 
    '<form>', 
 
     '<input type="text" ng-model="$ctrl.inputText" ng-change="$ctrl.changeEvent($ctrl.inputText)">', 
 
     '<input type="number" ng-model="$ctrl.inputNumber">', 
 
    '</form>' 
 
    ].join('') 
 
}; 
 

 
angular.module('myApp', []); 
 
angular 
 
    .module('myApp') 
 
    .component('myComponent', myComponent);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <my-component></my-component> 
 
</div>

+0

是的,但是,如果我需要跟蹤所有的表單,是否有可能? –