You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AngularJS中将一个输入框的值实时同步至另一个输入框?

解决AngularJS中输入框值实时同步的问题

你的代码没法实现实时同步,核心问题在于控制器里的赋值语句只执行了一次:$scope.value2 = "this is it: " + $scope.value1; 这条代码只会在控制器初始化的时候运行,当你在输入框里修改value1时,AngularJS不会自动重新计算这个值,所以value2自然不会跟着更新。

下面给你两种靠谱的解决方案,按需选择:

方案一:直接在视图中使用表达式(最简单快捷)

AngularJS的视图会自动进行脏检查,只要绑定的变量发生变化,视图里的表达式就会重新计算并更新。所以我们可以跳过在控制器里手动赋值value2,直接在视图里实现拼接逻辑:

<html>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
  <body ng-app="myApp">
    <div ng-controller='MyController'>
      <h1>Introduce your value:</h1>
      <input type="text" ng-model="value1">
      <br>
      <!-- 用表达式实时拼接value1的值,readonly让这个输入框不能编辑 -->
      <input type="text" value="{{ 'this is it: ' + value1 }}" readonly>
      <!-- 如果需要第二个输入框也能编辑并同步回第一个,直接绑定同一个ng-model即可: -->
      <!-- <input type="text" ng-model="value1"> -->
    </div>
  </body>
</html>
var app = angular.module('myApp', []);
app.controller('MyController', ['$scope', function($scope) {
  // 可选:给value1设置一个初始值
  $scope.value1 = '';
}]);

这个方案的好处是不用写额外的逻辑,完全利用AngularJS的双向绑定机制,简洁高效。

方案二:用$watch监听变量变化(适合复杂逻辑场景)

如果你的同步逻辑比较复杂(比如需要对输入值做格式转换、验证或者其他处理),可以在控制器里用$scope.$watch来监听value1的变化,每次值改变时手动更新value2:

var app = angular.module('myApp', []);
app.controller('MyController', ['$scope', function($scope) {
  $scope.value1 = '';
  
  // 监听value1的变化,newVal是变化后的值,oldVal是变化前的值
  $scope.$watch('value1', function(newVal, oldVal) {
    // 这里可以添加任何你需要的复杂逻辑
    $scope.value2 = "this is it: " + newVal;
  });
}]);
<html>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
  <body ng-app="myApp">
    <div ng-controller='MyController'>
      <h1>Introduce your value:</h1>
      <input type="text" ng-model="value1">
      <br>
      <input type="text" ng-model="value2" readonly>
    </div>
  </body>
</html>

$watch会持续监控value1的状态,只要它发生变化,回调函数就会触发,你可以在里面做任何自定义处理后再更新value2。

内容的提问来源于stack exchange,提问作者Leo Messi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:45:21