来自ng-book的角度代码

时间:2015-03-16 22:39:42

标签: angularjs

我正在阅读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。如果是这样的话,它如何知道评估这个属性?

1 个答案:

答案 0 :(得分:0)

parseFun是$ parse(newVal) 在这种情况下,他们暗示这意味着parseFun将是一个新的解析表达式。然后,他们通过使用parseFun(范围)传递watch函数回调给出的作用域来检索解析表达式的值

注意:在实际的角度开发中,您很少会发现需要在控制器中使用watch语句。