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

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

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

共收到 8 条回复

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

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的。

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