【问题标题】:Angular ui bootstrap custom templates in RailsRails 中的 Angular ui 引导自定义模板
【发布时间】:2013-07-21 13:02:07
【问题描述】:

如何在rails中使用angular ui bootstrap的自定义模板?

我的意思是,例如,如果我使用pagination,它将寻找templates/pagination/pagination.html 模板。

问题是 Rails 不会在该路径中提供模板,它实际上需要使用 <%= asset_path(....) %> 帮助器为 assets/templates/pagination/pagination.html

破解 angular ui bootstrap javascript 文件是一种方法,但我不想每次获得新版本时都破解它。

【问题讨论】:

    标签: ruby-on-rails angularjs angular-ui-bootstrap


    【解决方案1】:

    我的建议是将自定义模板与库本身或单独的文件捆绑在一起。使用的技术是用您的自定义模板的内容填写$templateCache。查看随模板分发的文件之一,了解我的意思:

    https://github.com/angular-ui/bootstrap/blob/gh-pages/ui-bootstrap-tpls-0.3.0.js#L2042

    您可以将模板捆绑到$templateCache 作为构建过程的一部分,或者手动准备此文件(在这种情况下,您需要将模板编写为 JS 字符串)。

    通过 XHR 为每个指令下载单独的模板会很浪费,因为它会导致许多 XHR 请求并减慢您的应用程序。此外,如果您将模板预加载到 $templateCache 中,您可以指定所需的路径,该路径不需要是 WWW 服务器上的有效路径。

    【讨论】:

    • 太棒了,$templateCache 没有文档,但我想通了。很高兴知道我可以提供name,如果某些指令查找具有该名称的模板,我可以提供我想要的。为了分享,我将用我结束的工作来更新我的问题:)
    【解决方案2】:

    我使用 bower 来管理我的 js 库。 因此,我的vendor/assets/javascripts/ 文件夹中有这些文件: angular-ui/bootstrap-bower

    使用这些文件,您可以在 javascript 清单文件(通常是 application.js)中简单地要求它们

    //= require angular-bootstrap/ui-bootstrap
    //= require angular-bootstrap/ui-bootstrap-tpls
    

    如果要使用默认的内置模板,则无需指定任何模板。

    我在以下网址中找到了这个解决方案 参考:angular-ui-bootstrap-directive-template-missing

    【讨论】:

    • 谢谢,但我的想法是使用我自己的模板。无论如何,我以 lineman 结束创建 Angular 应用程序,然后将其转储到 Rails 公用文件夹中。
    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2013-02-04
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多