有条件地包括角度js中的头文件

时间:2013-05-24 03:13:12

标签: javascript angularjs partial-views

我试图有条件地在我的角应用程序中包含一个头文件但由于某种原因它似乎没有加载该文件。

这就是我的观点

<div ng-controller="MyCtrl">
<div class="container-fluid" ng-include="'{{display_header()}}'"></div>
{{display_header()}} <!-- just for debug!! -->
</div>

我在控制器中有这个

$scope.display_header = function() {
    if ($location.path() === '/login') {
    return "partials/login_header.html";
    } else {
    return "partials/navbar.html";
    }
  }
};

我的调试行打印出正确的值,因此我想知道它为什么没有插入include。

2 个答案:

答案 0 :(得分:1)

ngInclude需要一个表达式,这应该可行:

ng-include="display_header()"

当您使用表达式(一个简单的字符串)时,表达式中的字符串将不会被插值,因此如果您检查控制台,您可能会看到404错误链接到名为“%7B%7Bdisplay_header”的文件( )%7D%7D”。

答案 1 :(得分:1)

ng-include的参数是一个Angular表达式,它应该计算为一个表示要查找的URL的字符串。

所以当你这样做时:

ng-include="'{{display_header()}}'"

您告诉它评估 字符串 '{{display_header()}}',这不是您想要的。您想要实际评估函数,因此以下内容应该有效:

ng-include="display_header()"
相关问题