2015-01-01 61 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

就是这样 - 你懂了:) –