如何绑定2个模型到一个输入领域的角度?

我是否可以将两个模型值绑定到一个输入字段?

假设我有一个输入域,我希望它是作用域中两个变量的值,比如:

<input type="text" model="sn_number; id" >
100572 次浏览

你不能,但是有一些变通方法。

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中的更改。

举个例子

将输入绑定到模型中的两个变量是没有意义的。绑定是双向工作的,所以如果模型被更新,字段就会被更新,反之亦然。如果你绑定到两个变量,真理的唯一来源是什么?

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

和 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'}">

您可以立即绑定字段,不仅在 n- 变化中,而且实际上它不是数据绑定,而是它唯一的角度表达式

  <label>Name</label>
<input type="text" ng-model="name" value="\{\{name}}"/>


<label>Key</label>
<input type="text" ng-model="key" value="\{\{key=name}}" />