2013-10-09 65 views
1

我在我的项目中使用angular.js。在模板中,我有:根据其他填充一个输入字段

<div class='form-group'> 
    <label>Field 1</label> 
    <input type='text' ng-model='f1' required class="form-control"> 
</div> 


<div class='form-group'> 
    <label>Field 2</label> 
    <input type='text' ng-model='f1' required class="form-control"> 
</div> 

controller现在仅使用一个模型$scope.f1

我想预填充Field 2基于Field 1。但由于我使用相同型号 ,如果我在Field 2中写了一些东西,则会覆盖Field 1

我不想要这种行为。我应该可以在不影响Field 1的情况下编辑Field 2

有没有办法实现这种行为?

回答

5

您可以使用$watch,它会注册一个监听器回调,以便在watchExpression更改时执行。

$scope.$watch(function() { 
    return $scope.f1; 
}, 
function (newValue, oldValue) { 
    $scope.f2 = $scope.f1; 
}, true); 

Working Demo

+0

优雅!但需要注意的是,你的第二个字段绑定到另一个变量('f2') – Cherniv

+1

@Cherniv,请参阅演示我希望能够处理您的疑虑 – Satpal

+0

@Satpal。非常感谢。差不多,$ watch处理我所关心的问题。我正在玩那里的代码。感谢发布演示,非常有帮助:) –

相关问题