【问题标题】:AngularJS: How exactly does $route work?AngularJS:$route 究竟是如何工作的?
【发布时间】:2015-08-06 14:18:56
【问题描述】:

这是我被问到的一个面试问题:AngularJS:$route 服务究竟是如何工作的?

据我了解,$route 在链接/按钮/任何点击时加载模板,然后用模板的 HTML 替换 [ng-view] div/section,将其存储在内存中,然后用模板刷掉后续点击在内存中。

这是正确的还是每次收到点击时 Angular 都会加载模板?

换句话说,Angular 是加载一次模板还是每次都加载?在我看来,只加载一次会更有效,但我不确定。任何见解都值得赞赏。

【问题讨论】:

    标签: angularjs ngroute


    【解决方案1】:

    $templateCache 的 Angular 文档说

    第一次使用模板时,它会被加载到模板缓存中 快速检索

    Angular $route 在内部使用 $templateCache,所以是的,模板被加载一次,并在后续访问同一路由时从缓存中重用。

    这个blog post 有更多信息。相关位:

    第一次访问模板时,Angular 会从 服务器并将其添加到 $templateCache

    从那时起,每次引用该 ID 时,Angular 都会从 $templateCache 而不是来自服务器!

    【讨论】:

      【解决方案2】:

      我认为您的回答不一定是错误的,因为页面呈现/呈现方式有很多部分($route、$routeProvider、ngView 指令)

      $route 用于将 URL 深层链接到控制器和视图(HTML 部分)。它监视 $location.url() 并尝试将路径映射到现有的路由定义。

      查看documentation 或深入了解source

      编辑:添加解释。

      【讨论】:

        猜你喜欢
        • 2016-02-15
        • 2011-06-26
        • 2021-08-15
        • 2012-06-08
        • 2011-10-11
        • 2013-07-05
        • 1970-01-01
        • 1970-01-01
        • 2014-09-29
        相关资源
        最近更新 更多