【发布时间】:2016-08-12 13:04:32
【问题描述】:
我有这个代码:
<!DOCTYPE html>
<html ng-app="m1">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body>
<div ng-controller='c'>
<input ng-model='x1'><br>
<span>{{x2}}</span>
</div>
</body>
<script>
var m = angular.module("m1", []);
m.controller('c', function($scope){
$scope.x2 = $scope.x1;
});
</script>
</html>
当我在输入框中输入内容时,我没有看到它反映在 {{x2}} 输出中。
但是当我通过一个函数执行它时,它可以工作:
<!DOCTYPE html>
<html ng-app="m1">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body>
<div ng-controller='c'>
<input ng-model='x1'><br>
<span>{{x2()}}</span>
</div>
</body>
<script>
var m = angular.module("m1", []);
m.controller('c', function($scope){
$scope.x2 = function(){
return $scope.x1;
}
});
</script>
</html>
为什么这在这种情况下不起作用? x2 不应该在摘要周期内更新吗?
【问题讨论】:
-
x1 上的手表怎么样?类似于 $scope.$watch('x1', function(newVal, oldVal){ $scope.x2 = $scope.x1});
标签: javascript angularjs data-binding