Angular JS: ng-include by function

Angular JS: ng-include by function

本文关键字:by function ng-include JS Angular      更新时间:2023-09-26

我在使用 ng-include 时遇到了奇怪的经历。我正在尝试通过触发控制器中定义的函数来获取模板路径,该函数根据传递的参数返回路径。这是我的代码-

<tr ng-repeat="detail in Ctrl.details" ng-include="Ctrl.getTemplate(object)"></tr>

康托勒-

self.getTemplate = function (obj) {
    if (<condition>) {
        return 'view1';
    } else return 'view2';
};

这工作得很好,但我在调试代码时观察到了非常奇怪的行为。在我的表格行中,我有 3 个按钮,我在它们上应用了引导工具提示。每当我悬停它们时,工具提示就会出现,鼠标左边 getTemplate(( 就会被调用。有人知道为什么会这样吗?

这是

预期行为。

看看这篇文章。Angular 需要检查 ng-include 的表达式是否已更改。为此,它需要评估每个摘要循环Ctrl.getTemplate(object),因为没有其他方法可以找出其返回值是否已更改,因此需要将新值传递给ng-include