2015-01-01 62 views
1

我正在使用AngularJS的Rails,我想在Angular模板中使用rails helper和erb-style if語句。在Angular模板中使用Rails助手

我在顯示一個刪除按鈕,並且想確保只有所有者才能看到此按鈕。

在正常erb文件,我會寫:

<% if @article.id == current_user.id %> 
    <button>Delete</button> 
<% end %> 

我試圖erb擴展添加到我的模板文件,但我不能使用嵌入的Ruby語法,也沒有幫手current_user

我採取的另一種方法是將ng-show='owner'添加到按鈕,並在Angular控制器中定義owner函數來確定當前用戶是否爲所有者。但由於我無法訪問current_user,因此無法正常工作。

有什麼建議嗎?如果有更多的角度來做到這一點,我也想知道。

回答

6

我認爲AngularJS最困難的事情之一是轉換爲「從服務器檢索數據」而不是「直接在服務器中獲取數據」的思維模式。也就是說,您需要放棄在模板中使用任何類似軌道約定的想法(對於Django或PHP或其他框架也是如此)。

相反,想想如何將API添加到以乾淨的JSON格式返回相關數據的Rails代碼。然後編寫一個角色服務,調用它,說ArticleService.get(id),然後你的角模板將是直截了當的。

+1

謝謝。這就說得通了。我在rails api的json響應中添加了一個布爾型'is_author',並使用'ng-show'來使其工作。 –

+1

就是這樣 - 你懂了:) –