如何将2个模型绑定到Angular中的一个输入字段?

时间:2012-12-15 07:32:00

标签: angularjs

无论如何,我可以将两个模型值绑定到一个输入字段吗?

假设我有输入字段,我希望它是范围内两个变量的值,如:

<input type="text" model="sn_number; id" > 

4 个答案:

答案 0 :(得分:135)

你不能,但有一些解决方法。

1。使用ngChange更新其他模型

<input type="text" 
       ng-model="sn_number" 
       ng-change="id=sn_number"/> 

2。您可以观看模型,并在更改时更新另一个

$scope.$watch('sn_number', function(v){
  $scope.id = v;
});

如果您想让它们保持同步,您还需要关注id中的更改。

Example here

答案 1 :(得分:11)

你可以立即绑定字段,不仅仅是在ng-change中,实际上它不是数据绑定,它唯一的角度表达式

&#13;
&#13;
  <label>Name</label>
  <input type="text" ng-model="name" value="{{name}}"/>

  <label>Key</label>
  <input type="text" ng-model="key" value="{{key=name}}" />
&#13;
&#13;
&#13;

答案 2 :(得分:7)

将输入绑定到模型中的两个变量是没有意义的。绑定有两种方式,因此如果更新模型,则更新字段,反之亦然。如果你要绑定两个变量,那么真正的单一来源是什么?

但是,您可以使用ng-change来调用控制器上的方法,该方法可以在字段更改时设置两个变量。

答案 3 :(得分:0)

使用ng-init

<div ng-controller="ctrl" ng-init="model = { year: '2013', month:'09'}">

<div ng-repeat="c in contact" ng-init="likes = { food: 'steak', drink:'coke'}">