0

使用 Angular 1.2.10 和 ngRoute,jquery 1.10.2 我的 index.html 中有以下代码:

<body ng-controller="MainCtrl">

    <div ng-include src="'partials/login/login.html'"></div>

    <div ng-if="isAuthenticated()">
        <div ng-view/>
    </div>
    <!--javascript files-->
</body>

初始登录页面(未配置为路由),下载所有需要的 javascript 文件,但在我登录后,并且 ng-if 评估为 true,我注意到 jquery 为浏览器中的所有 javascript 文件触发了一堆 XHR安慰:

XHR finished loading: "http://myurl/jquery-1.10.2.min.js?_=1392752363272"
XHR finished loading: "http://myurl/angular.min.js?_=1392752363273"
XHR finished loading: "http://myurl/app.js?_=1392752363274"
...and so on

控制台报告这些 XHR 正在从 jquery.1.10.2:8706 执行

根据文档,当 ng-if 评估为 true 时,该元素会在那时创建和编译。我想这与 ng-view 和 ngRoute 以及它们是如何连接在一起的,但我无法从文档中收集到为什么会发生这种特殊行为。如果有人可以对这种行为有所了解和/或如果我尝试采用的方法存在根本性错误,将不胜感激。

注意:如果我将 ng-if 替换为 ng-show,则不会发生此行为。

4

2 回答 2

0

我认为更好的设计方法是为所有事物使用路线,

假设用户未通过身份验证,然后路由到登录页面,后续请求检查身份验证(通过 cookie 或 token ),然后在某些事情失败时重定向到登录页面。

于 2014-02-18T21:33:19.993 回答
0

就像您说的ng-if那样,如果评估为false.

您最好为您的登录页面创建一个单独的路由,一旦您通过身份验证,它将重定向您。

于 2014-02-18T21:29:26.453 回答