如何在一个输入字段中使用两个以上的ng-model

时间:2017-02-01 07:29:18

标签: angularjs html5 checkbox

是否可以在一个输入字段上安装多个ng模型?

e.g: <input ng-model="formData.glCode" ng-model="accNumber" ng-change="accNumber = editAccountNumber(accNumber)"/>

因为我想要应用的所有输入都已经设置了ng-model,我还需要编辑模型名称ng-model="accNumber"

3 个答案:

答案 0 :(得分:1)

如果您无法编辑输入并且您尝试将模型绑定到控制器,请使用输入中已存在的相同模型:

<input ng-model="formData.glCode" ng-change="formData.glCode = editAccountNumber(formData.glCode)"/>

可能重复: How to bind 2 models to one input field in Angular?

答案 1 :(得分:0)

不, ngModel 不应该做这样的事情,此时最好从视图开始重新定位逻辑。在这种情况下,您可以使用 $watch 并在控制器中获取accNumber值。

工作演示:

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl',function($scope) {
    $scope.$watch('formData.glCode', function(){
        console.log($scope.accNumber);
    });
    $scope.editAccountNumber = function(glCode) {
      return glCode;
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  <input type="text" 
       ng-model="formData.glCode"
       ng-change="accNumber = editAccountNumber(formData.glCode)"/> 
</div>

答案 2 :(得分:-1)

您可以使用以下代码:ng-model-options

    <input ng-model="name" ng-model-options="{updateOn: 'blur'}">

有关详细信息,您可以尝试以下链接: http://www.w3schools.com/angular/ng_ng-model-options.asp