0

我在 Rails 4 应用程序中设置了基于葡萄的 API 。我想将其中一个 API 调用生成的 json 呈现到内联标记中的视图中- 特别是为了使 JSON 数据可用于 angularjs 视图,以避免在页面加载后对服务器进行(JSON API)调用。

任何想法如何将Grape API 呈现为 string

/app/api/api.rb

class API < Grape::API
  version 'v1', using: :path
  format :json
  get '/dashboard' do
    ...
  end
end

视图/仪表板/index.html.erb

<script>   
  <%= render some-way-to-render-to-text('/api/v1/dashboard.json') %>
</script>

我可以使用 get http 请求来渲染它,但我希望避免 http 调用的开销。我宁愿直接调用 API 类。

4

1 回答 1

0

您的 erb 文件在发送到客户端之前会呈现为原始 html。您的 api 调用是在此之后进行的,因此无法接收 http 响应并在 ruby​​ 中处理它,因为此时所有 ruby​​ 都已翻译成 html。

你想要做的是以角度处理它。从那里您可以使用 jquery 将其插入 DOM。

在 Angular 中,您将在服务中执行以下操作:

$http.get(....).success(//insert into DOM here)
于 2014-08-22T17:25:00.500 回答