新手问题 如果使用 emberjs 等等的 mvc 的 template,就没法用 cancan 等 gem 了?

QueXuQ · 2013年04月01日 · 最后由 JeskTop 回复于 2013年04月03日 · 2456 次阅读

如果使用 emberjs 等等的 mvc 的 template,就没法用 cancan 等 gem 了? 我看 angularjs 是直接用 view 做渲染的,但是我觉得这样不太好,速度慢点的打开页面就一堆{{}}了。 但是如果用 template 的,cancan,devise,slim 等等很多的 gem 似乎就用不了了?

一样用。用户提交的数据是不可信的。

cancan 我是直接在 rabl 里面做,比如有权限的话就在 json 里传个链接,前端判断。devise 一样用,slim 如果是单页面的确不会用上。

#2 楼 @saiga #1 楼 @Rei 只是在服务器端上的 controller 做限制吧,template 里都插入不了<%%>好像很多东西都用不了了。

服务端的验证还是要照做,这点来说 devise,cancan,model 校验之类的都需要。 如果说客户端怎么控制“如果是什么角色就生成什么按钮”之类的逻辑,那只能在前端 mvc 的 template 里做了。 PS:angular 可以远程获取 template,合理组织的话应该不会出现很多{{}}挤在一起的情况。不过开始加载的时候一堆{{}}是必须的了……还好我不用,喜欢 ember 多一些

#4 楼 @darkbaby123 恩。那就是服务器和客户端彻底分开来了。 而且貌似服务器端的校验需要更谨慎,毕竟客户端的代码都是给人一目了然的。 然后 ember 权限验证有 cancan 那么方便就好了。😄

#4 楼 @darkbaby123 angularjs 也可以通过 ng-cloak, 还有元素的 ng-bind, ng-bind-template 把{{ }}的露出最大程度干掉的.....

@clearJiang 这样啊,谢谢提醒!我不大懂 angular,没怎么用过。

#2 楼 @saiga http://emblemjs.com/ 这个可以取代 slim 的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号