【问题标题】:Using a single html template for Rail view and Angular Template对 Rail 视图和 Angular 模板使用单个 html 模板
【发布时间】:2015-01-15 20:35:16
【问题描述】:

我有一个 Ruby on Rails 应用程序,它在用户登录时加载单页 Angular JS Web 应用程序,并在用户未登录时通过 RoR 视图提供静态信息页面。

角度模板位于“app/assets/templates/”中,rails 文件位于“app/views”中。

我有一个文本繁重的 html 页面,我想在 rails 和 angular 中重复使用它。我尝试从我的角度 $routeProvider 访问 rails 视图,将 templateURL 设置为视图的路径。这会导致加载多个 angular 实例并陷入循环。

    app.config ($routeProvider) ->
      $routeProvider.when('/features/',
        templateUrl: '/views/features.html'
      )

我尝试通过 rails 视图渲染我的 assets/templates 文件夹中的文件。这也不起作用,因为 rails 找不到部分。

    = render 'assets/templates/features.html'

有谁知道我可以如何同时使用一个模板?

【问题讨论】:

    标签: ruby-on-rails angularjs route-provider


    【解决方案1】:

    我不确定您所说的重文本页面到底是什么意思。但是其他解决方案呢 - 使用键(某种翻译文件)将所有文本提取到 JSON 文件。例如:

    { "title1": "Title", "paragraph1": "lore up sum. .." }
    

    然后您可以在 Rails 控制器中加载此 JSON 并将其传递给查看从中呈现文本部分的内容。

    <h1><%= @text ['title1'] %></h1>
    <p><%= @text['paragraph1'] %></p>
    

    并将 JSON 作为资源加载到您的 Angular 应用程序中并将其传递给查看。

    <h1>{{ text.title1 }}</h1>
    <p>{{ text.paragraph1 }}</p>     
    

    如果您的文本以某种方式结构化,您可以利用它并使用循环、条件等自动执行视图,从而进一步节省重复部分。

    【讨论】:

      猜你喜欢
      • 2016-09-16
      • 2011-06-22
      • 2015-06-02
      • 1970-01-01
      • 2019-03-04
      • 2020-07-05
      • 2019-03-14
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多