【问题标题】:AngularJS Weird Behavior, NG-INCLUDE Causes Whole Page to Re-LoadAngularJS 奇怪的行为,NG-INCLUDE 导致整个页面重新加载
【发布时间】:2015-01-16 00:57:40
【问题描述】:

一个简单的ng-include 会导致页面在页面的一个区域内一遍又一遍地递归打印出整个站点,这会导致浏览器崩溃。如果我改变路径,同样的事情就会发生,所以显然它甚至没有看路径。如果我在页面上的任何位置使用ng-include,也会发生同样的奇怪行为。

模板 (list.html) 位于 angularjs 脚本所在的子文件夹中。

HTML

<div ng-if="comments_data">

    <div ng-include="'templates/list.html'"></div>
</div>

模板

<li ng-repeat="comment in comments_data">
    {{ print_some_stuff }}
</li>

【问题讨论】:

  • 我会尝试用指令替换 ng-include。
  • 这对我来说很好用。问题可能出在 cmets_data 的结构上,因为迭代是无限的并且会导致浏览器崩溃
  • @Coldstar 它与 comment_data 无关,因为如果我将 include 指令与一个不存在的模板的路径一起放置,它仍然会崩溃。
  • 没有看到完整的代码示例,带有角度初始化,我无法解决这个问题。除此之外,它对我来说效果很好
  • @user3704920 - 你有没有弄清楚这里发生了什么?我也看到了同样的情况……但只有在 prod、stage 和 dev 上工作正常……

标签: javascript html angularjs angularjs-ng-include


【解决方案1】:

您能否检查一下这是否有用。

<div ng-include="'templates/list.html'" ng-controller="CommentsController" ng-show="isCommentAvailable()"></div>

.controller('CommentsController', function() {
    $scope.comments_data;

    $scope.isCommentAvailable = function() {
        if ($scope.comments_data)
            return true;
        else
            return false;
    }
}

【讨论】:

  • 实际上崩溃了,没有结果。
【解决方案2】:

你能不能试试:

<div ng-if="comments_data">
    <div ng-include="'/templates/list.html'"></div>
</div>

路径开头的斜线对我来说是个问题。检查您的路由器并查看模板是如何加载的(应该与前导斜杠相同)。

【讨论】:

    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多