gpt4 book ai didi

javascript - 表达式中的 AngularJs 函数

转载 作者:可可西里 更新时间:2023-11-01 02:09:55 26 4
gpt4 key购买 nike

有什么理由让您选择一种技术而不是另一种?

 var items = [{val:7},{val:3},{val:4},{val:1}];

首先:Ctrl 和 View

 $scope.doSomething = function(val){
return val + 10;
};

<div ng-repeat="item in items">
{{ doSomething(item.val) }}
</div>

第二:Ctrl 和 View

 angular.forEach(items,function(item){
item.val = item.val + 10;
//item.valAlso = item.val + 10; Or in case you want to preserve model
});

<div ng-repeat="item in items">
{{ item.val }}
</div>

我通常更喜欢第二种技术(例如在 http 请求之后),但我想知道是否以及为什么特别是一种优于另一种。我知道第一种技术最终可能会在每个摘要周期(对于转发器中的每个项目)多次调用 $scope.doSomething,但我听说这与使用过滤器并没有太大区别。有什么想法吗?

编辑:我特别想知道对脏检查、摘要循环、范围监视等的影响。函数复杂性是否相关(想象一个更复杂的函数)?

最佳答案

两者都没有性能差异,但就语义和干净分离而言,没有理由使用第一种方法。这就是过滤器的设计和优化目的。

函数的复杂性在一种方法与另一种方法之间没有区别,因为脏检查以完全相同的方式发生。

如果您正在修改项目的值,那么您的逻辑绝对应该远离您的 View ,即第二个示例。

关于javascript - 表达式中的 AngularJs 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22083885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com