gpt4 book ai didi

javascript - 为指令提供动态值,而不会导致 AngularJS 中的重新计算

转载 作者:行者123 更新时间:2023-12-02 17:08:12 26 4
gpt4 key购买 nike

我想使用 AngularJS 指令作为 HTML 元素,并为其提供两个值:一个是通过迭代集合来检索的,另一个是根据该值计算的:

<mydirective myval="val" mymagic="getMagic(val)" ng-repeat="val in values" />

getMagic(val) 函数始终返回相同的值时,它会按预期工作。就我而言,结果值是数组,并且随着每次调用都会产生一个新值,我最终会得到一个

[$rootScope:infdig] 10 $digest() iterations reached. Aborting!

错误。你可以在我的例子中找到一个 fiddle here (如果该函数的定义与注释行中的定义相同,则它可以工作)。

有什么方法可以不重新评估或“监视”mymagic 参数吗?我确实希望在 values 集合更改时重新计算该值,但除此之外不应调用该函数。

有什么办法可以实现这一点吗?

最佳答案

试试这个

(更新的 JSFIDDLE)

http://jsfiddle.net/yogeshgadge/6T8mr/6/

注意变化 - 你的 getMagic() 被多次调用,因为返回的值也触发了变化并导致无限....10 摘要

app.directive("mydirective", function () {
return {
restrict: "E",
transclude: false,
scope: {
myval: "=",
mymagic: "&" //passing the function
},
template: "<li>{{myval}} -- {{mymagic()}}</li>",
///mymagic() executing this function here
replace: true
};
});

关于javascript - 为指令提供动态值,而不会导致 AngularJS 中的重新计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25064015/

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