gpt4 book ai didi

javascript - 在指令中使用相同的指令 [angularjs]

转载 作者:行者123 更新时间:2023-11-28 00:21:12 25 4
gpt4 key购买 nike

我需要在指令中使用相同的指令,具体取决于条件参数。然而,当我尝试这样做时,它似乎陷入了无限循环。据我了解,它尝试预加载模板,这会导致无限递归,最后,它只会抛出以下错误:“RangeError:超出最大调用堆栈大小”。

我在 fiddle 中创建了一个示例..正如您在示例中看到的,当参数的值为“1”时,它会创建错误(即使第二级参数的值为“2”,所以它应该' Controller /应用程序中没有真正的递归问题)。 https://jsfiddle.net/qh9nh1gx/

“自定义指令”的模板:

<div>
<div ng-if='info==1'><div custom-directive info='2'></div></div>
<div ng-if='info==2'>DONE,single.</div>
</div>

谢谢

最佳答案

我找到了解决这个问题的两个选项,第一个,正是 Jju 所描述的 - 创建一个新的“编译器”方法(可以从他发送的 url 中获取)。第二个选项 - 始终对指令的“递归”部分使用附加模板。例如,在我的指令中,我有一个“ng-repeat”部分,根据项目值,它可以请求再次显示该指令。当我使用“ng-include”来获取其他指令时,它起作用了。

<div ng-repeat="item in items" ng-include="'inline-possibly-recursive-template"'></div>

在该模板中,您可以再次调用该指令,不会出现任何问题。

我希望其他人也会遇到这个问题。

关于javascript - 在指令中使用相同的指令 [angularjs],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30011216/

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