我试图以编程方式将我的Controller中的变量绑定到绑定到此类输入的模型
<body ng-app="myApp">
<div ng-controller="MyController">
<input type="text" ng-model="myVar1" /> {{ myVar1 }}
<br />
<input type="text" ng-model="myVar2" /> {{ myVar2 }}
<br />
{{ myVar3 }}
</div>
</body>
var myApp = angular.module('myApp', []);
myApp.controller('MyController', ['$scope', function($scope){
$scope.myVar3 = $scope.myVar1;
}]);
但正如您在此fiddle中所看到的,当我在第一个输入中输入时,myVar3的值不会改变。我知道在任何语言中,原始变量都是按值复制而不是通过引用复制,因此可以将模型定义为对象,然后将引用复制到myVar3(参见fiddle):
<body ng-app="myApp">
<div ng-controller="MyController">
<input type="text" ng-model="myVar1.value" /> {{ myVar1.value }}
<br />
<input type="text" ng-model="myVar2.value" /> {{ myVar2.value }}
<br />
{{ myVar3.value }}
</div>
</body>
var myApp = angular.module('myApp', []);
myApp.controller('MyController', ['$scope', function($scope){
$scope.myVar1 = {};
$scope.myVar2 = {};
$scope.myVar3 = $scope.myVar1;
}]);
问题在于,每次我需要将变量与模型进行动态链接时,我都不想创建对象,而且还有更多的角度&#34;使用第一个代码实现相同结果的方法?
谢谢,
答案 0 :(得分:1)
该行$scope.myVar3 = $scope.myVar1;
只会在页面中加载控制器时执行一次。您需要的是将该句子放在绑定到任何输入键事件的控制器函数中。