同步两个具有不同模型的文本框

时间:2015-02-13 10:25:28

标签: javascript html angularjs angularjs-ng-model

我有一个简单的角度应用程序,有两个不同模型的文本框

First Email: <input ng-model="firstEmail"/>
Second Email: <input ng-model="secondEmail"/>

现在,如果在第一封电子邮件中输入了某些内容,我希望它在第二封电子邮件中填充,但如果第二封电子邮件是手动编辑的,则此绑定应该停止,即第一封电子邮件中的进一步更改不应影响第二封电子邮件。

我的代码:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.1/angular.min.js"></script>
<script>
var emailApp = angular.module('emailApp', []);
emailApp.controller('EmailCtrl', ['$scope', function ($scope) {

}]);
</script>
</head>
<body ng-app="emailApp">
  <div ng-controller="EmailCtrl">
      First Email: <input ng-model="firstEmail"/>
      <br>
      Second Email: <input ng-model="secondEmail"/>
      </select>
  </div>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

您需要使用watch来绑定firstEmail中secondEmail中的内容。

  $scope.$watch('firstEmail',function(newVal,oldVal){
    $scope.secondEmail=newVal;
    })

Plunker

答案 1 :(得分:2)

使用ng-change指令更新值。

<body ng-app="emailApp">
  <div ng-controller="EmailCtrl">
      First Email: <input ng-model="firstEmail" ng-change="secondEmail=firstEmail"/>
      <br>
      Second Email: <input ng-model="secondEmail"/>
  </div>
</body>

Working Plunkr

这可以帮到你。感谢。