【问题标题】:How can I change angular-route.js from using Ajax to script-tag loading of partials?如何将 angular-route.js 从使用 Ajax 更改为脚本标签加载部分?
【发布时间】:2014-10-27 10:31:44
【问题描述】:

我正在使用 angular-route.js 制作一个移动、AngularJS、跨浏览器、离线 spa,根本不使用服务器。我觉得更改浏览器默认设置以允许 Ajax 加载本地文件,这对我的情况是不可接受的。理想情况下,我想要一个外部到库的代码解决方法,允许通过脚本标签 src 属性操作加载文件。但是,如果我知道最好的版本 + 文件 + 行,我愿意探索修改或扩展开源库文件,例如 angular-route.js。

【问题讨论】:

    标签: angularjs security single-page-application offline angular-routing


    【解决方案1】:

    看来你需要使用$templateCache,你可以直接在你的html中使用<script>标签指定模板。

    <script type="text/ng-template" id"path/to/template.html">...</script>
    

    当然,您可能希望将每个部分放在一个单独的文件中,在这种情况下,您必须添加一个任务,使 $templateCache 可以使用这些部分。有插件可以为你做这件事,看看grunt-ng-template

    【讨论】:

    • 也许我希望这是不可能的,但我想延迟加载部分并在视图更改或程序员确定的事件时将其从内存中删除。 grunt 方法似乎是一次预加载所有部分。有人知道可以做我想做的插件/库吗?我将结合 document.write("
    • 你能用一个代码是什么样子的例子来更新你的问题吗?我不确定我是否理解您所说的使用
    • 标准路由是否利用相同的 $templateRequest?您的帖子正在帮助我缩小基本问题的原因(需要更多地调试到 Angular 文件中)。我不能使用 $templateRequest 因为它依赖于 Ajax。发布任何代码都需要数周时间,因为这是一种爱好,而不是我的工作。我现有的代码在其当前状态下不值得发布,因为它还没有考虑到我从这个线程中学到的东西。我会在可能的情况下再次发布。谢谢。
    • Faking $templateCache,类似于下面,有一些我想要的。我将看看是否可以替换 Ajax 调用,以使用其中的部分/模板数据动态插入脚本标记到 DOM 中。
    • 我想我明白了,你不能使用 ajax 请求并优化你不想加载所有模板的内存使用。您可以做的是使用 grun-ng-template 之类的插件生成模板,该插件将创建一个脚本文件,将模板添加到 $templateCache,但您为每个模板创建一个文件。这样,当您动态添加 中删除
    猜你喜欢
    • 1970-01-01
    • 2010-12-20
    • 2022-01-11
    • 1970-01-01
    • 2016-01-28
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多