我正在阅读ng-book,并且有一些我不太关注的代码:
<div ng-controller="MyController">
<input ng-model="expr" type="text" placeholder="Enter an expression" />
<h2>{{ parsedValue }}</h2>
</div>
angular.module("myApp", [])
.controller('MyController',
function($scope, $parse) {
$scope.$watch('expr', function(newVal, oldVal, scope) {
if (newVal !== oldVal) {
// Let's set up our parseFun with the expression
var parseFun = $parse(newVal);
// Get the value of the parsed expression
$scope.parsedValue = parseFun(scope);
}
});
});
我猜测parseFun()会评估scope.expr。如果是这样的话,它如何知道评估这个属性?
答案 0 :(得分:0)
parseFun是$ parse(newVal) 在这种情况下,他们暗示这意味着parseFun将是一个新的解析表达式。然后,他们通过使用parseFun(范围)传递watch函数回调给出的作用域来检索解析表达式的值
注意:在实际的角度开发中,您很少会发现需要在控制器中使用watch语句。