javascript - 在 Angular JS 中缓存结果

标签 javascript angularjs

在 Angular JS 应用程序中,我需要向用户显示 javascript 函数(在我的示例中为 heavyFunction)的结果,这取决于用户输入,因此我使用 {{}} 来显示结果。

我只需要在某些条件下显示它,所以我也在 ng-show 和 ng-class 指令中调用这个函数。

<span ng-show="heavyFunction() > 0" ng:class="{true:'red', false:'blue'}[heavyFunction() > 5]"> {{heavyFunction()}} </span>

问题是我调用函数三次,而不是一次。 Angular JS 中仅调用此函数一次的最佳实践是什么?

骗子:https://plnkr.co/edit/9r5AlA3RbtZLseOCOzPX?p=preview

最佳答案

您可以使用ngBind

像这样

ng-bind="total=heavyFunction()"

HTML

<p>a + b:</p> <span ng-bind="total=heavyFunction()" ng-show="total > 0" ng-class="{true:'red', false:'blue'}[total > 5]"> {{total}} </span>

DEMO

关于javascript - 在 Angular JS 中缓存结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704285/

相关文章:

javascript - 为什么 jquery mobile 不适用于 Phonegap?

javascript - 按钮的 ID 发生变化,但 document.ready 函数调用先前值的方法

javascript - 使用 AngularJS 更改元素的类

AngularJS "Vertical"ng-repeat

javascript - 带有对象数组的 ngOptions 不设置第一个值

javascript - angularJS $scope 更改不更新 View

javascript - AngularJS Material 如何将文本字段设置为提示对话框的密码?

通过单击不同的图像来更改文本区域的值的 JavaScript 代码

javascript - 在 Javascript 中创建一个真正的抽象类

javascript - 当您从后端收到消息时,如何将 ng-repeat 与 socket.io 一起使用?