2

我有一个 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'

有谁知道我如何能够为两者使用一个模板?

4

1 回答 1

0

我不确定你所说的文本重页到底是什么意思。但是其他解决方案呢 - 使用键(某种翻译文件)将所有文本提取到 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>     

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

于 2015-02-18T23:35:45.080 回答