Angular - 直接绑定到函数

时间:2015-05-26 13:38:21

标签: javascript angularjs

是否存在直接绑定到e中的函数的负面(性能)影响。 G。 ng-show指令?

<div ng-show="myVm.isVisible()">
....
</div>

// controller snippet (exposed through controllerAs syntax)
function myCtrl (myService, authService) {
  this.isVisible = function isVisible () {
    return (myService.state === 'foo' && authService.isAuthorised);
  }
}

这种模式允许隐藏模板中的复杂逻辑并放入可测试控制器(或服务),但是一些开发人员似乎担心在ng-show,ng-if等指令中绑定函数。

1 个答案:

答案 0 :(得分:2)

实际上它主要是关于你的功能的复杂性。 angular在每个摘要周期调用您的函数,并与之前的值进行比较。当然它比检查一个简单的变量慢。所以你可以说它有负面的性能影响。如果性能是这个函数的一个大问题(假设你的函数需要花费太多时间来计算)。您可以将函数的输出存储到变量中,在模板上检查该变量并在需要时更改该变量。