2013-07-24 63 views
0

渲染葡萄API串我有一個導軌4的應用程序設置葡萄基於API。我想使通過JSON API的一個製造調用到在聯標記視圖 - 特別是使JSON數據提供給angularjs以避免(JSON API)頁面加載後調用服務器。從視圖

任何想法怎麼去渲染到字符串一個葡萄API?

/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類。之前它被髮送到客戶端

+0

請解釋一下你爲什麼會想這樣做,聽起來有點古怪。 –

+0

優化。儀表板頁面使用angular.js構建 - 它的第一件事是從服務器請求dashboard.json並使用返回的數據生成/呈現視圖。但是,這會導致一個額外的服務器請求並減慢頁面呈現速度。我想在呈現頁面時內聯呈現json數據,並使用ng-init,因此angular.js不必爲dashboard.json調用。再次,這是一個優化,以改善首頁加載體驗。 – amolk

回答

0

您的ERB文件被渲染成原始的HTML。你的API調用後,本作,所以沒有接收HTTP響應和紅寶石處理它的方式,因爲這一點所有的紅寶石已被翻譯成HTML。

你想要做的是什麼角度對其進行處理。從那裏你可以使用jquery將其插入到DOM中。

在角度,你會做這樣的服務下面的內容:

$http.get(....).success(//insert into DOM here)