Angular.js:$val是如何工作的,为什么它与 vanilla val不同?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

$scope.$eval经常在指令中看到,在rootScope.js:

  $eval: function(expr, locals) {
    return $parse(expr)(this, locals);
  },

$parse似乎是在parse.js定义ParseProvider。

提问于
用户回答回答于

$eval$parse不评估JavaScript;他们评估AngularJS表达式。

用户回答回答于

从测试中,

it('should allow passing locals to the expression', inject(function($rootScope) {
  expect($rootScope.$eval('a+1', {a: 2})).toBe(3);

  $rootScope.$eval(function(scope, locals) {
    scope.c = locals.b + 4;
  }, {b: 3});
  expect($rootScope.c).toBe(7);
}));

我们还可以传递本地值作为计算表达式。

扫码关注云+社区