为什么一个AngularJS服务绑定工作但另一个不绑定

时间:2014-07-10 20:13:06

标签: javascript angularjs

如果您使用以下Plunkr,您将看到一个简单的服务 - 递增计数并将其报告给用户。

我想要了解的是为什么这样做(在点击时向用户报告增量) - 绑定到视图中的函数:

来自HTML

<p> This is my countService variable : {{countService()}}</p>

来自控制器

$scope.countService = testService.getCount

为什么这不起作用 - 将函数绑定到范围:

来自HTML

<p> This is my countService variable : {{countService}}</p>

来自控制器

$scope.countService = testService.getCount()

最终我们会绑定到服务中的某个功能,但第二个功能并不绑定新值。

明确,易于理解,解释会很棒:)

1 个答案:

答案 0 :(得分:1)

在第一个版本中,您直接绑定到函数,因此角度检查函数输出是否已更改。在第二个版本中,您只在创建范围时调用该函数,并将countService设置为该值。由于countService现在是一个与计数函数无关的变量,因此它的值不会反映从该函数返回的值。