javascript - 在 AngularJS 模板中使用 Rails 助手

标签 javascript ruby-on-rails ruby-on-rails-3 angularjs

我正在开发 Rails 3.2 + AngularJS 应用程序,并将所有 AngularJS 代码放在名为“api_path”的 Rails 路由下(例如:/api#)

在我的 AngularJS 模板中设置指向 CRUD 函数(例如“show”)的链接时,我一直在执行以下操作;

<td><a href="/api#/costings/{{costing.id}}">Show</td>

我的 AngularJS 模板位于 Assets 管道中,名为 show.html.erb。我知道它正在正确编译 erb,因为我可以执行 <%= 2 + 2 %> 并且可以正常工作。

我的 application_helper.rb 文件中有一个像这样的方法;

  def link_to_api(title, path)
    link_to title, api_path + "#" + path
  end

如果我尝试在我的 AngularJS 模板中使用它,我会收到错误:

NoMethodError at /costings/index.html.erb
=========================================

> undefined method `link_to_api' for #<#<Class:0x007f4e8f550340>:0x007f4e9391ab20>
  (in app/assets/templates/costings/index.html.erb)

app/assets/templates/costings/index.html.erb, line 8

这是我在模板中尝试的内容

<td><%= link_to_api("Show", "costings/{{costing.id}}") %></td>

最佳答案

  1. 我认为在 AngularJS 中使用助手不是一个好主意。
  2. assets/* 中的模板无法共享 applicationHelper 范围,因此无法执行此操作。
  3. 如果必须,请尝试在 views/* 中使用 erb,它应该可以工作。

关于javascript - 在 AngularJS 模板中使用 Rails 助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801749/

相关文章:

ruby-on-rails - Rails route.rb-不区分大小写

ruby-on-rails - Gmaps4rails : Clustering not working?

ruby-on-rails - 基于 GET 参数的 Rails 路由

ruby-on-rails - Rails路由别名

javascript - 向下滚动网页后,在鼠标点上在 Canvas 上绘图的行为很奇怪

javascript - 数组无法与 if else 语句一起正常工作

javascript - 按钮的 Scrollspy 偏移量

ruby-on-rails - rails 3 : Detecting types when parsing XML

javascript - 为什么需要在这段代码中使用 super 方法

ruby-on-rails - Rails Devise 和用户 IP 地址