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

Ade*_*lin 71 angularjs

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

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

<input type="text" model="sn_number; id" > 
Run Code Online (Sandbox Code Playgroud)

jai*_*ime 136

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

1.使用ngChange更新其他模型

<input type="text" 
       ng-model="sn_number" 
       ng-change="id=sn_number"/> 
Run Code Online (Sandbox Code Playgroud)

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

$scope.$watch('sn_number', function(v){
  $scope.id = v;
});
Run Code Online (Sandbox Code Playgroud)

id如果您想让它们保持同步,您还需要注意更改.

这里的例子

  • 仅供参考:其工作原因是因为`ng-model`具有prio 1而'ng-change`具有prio 0(从Angular 1.5开始)因此被称为 (3认同)

小智 11

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

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

  <label>Key</label>
  <input type="text" ng-model="key" value="{{key=name}}" />
Run Code Online (Sandbox Code Playgroud)


sup*_*ary 7

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

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