Emberjs食谱:before/action过滤器、控制器名称空间、共享对象

ccgok5k5  于 2022-11-23  发布在  其他
关注(0)|答案(2)|浏览(141)

我们用rails 4 beta和emberjs 1.0.0rc1启动了一个项目。
我正在寻找解决以下问题的“方法”或模式:
1.具有/模拟“before filters”,例如在没有当前用户时重定向用户
1.拥有控制器和模型命名空间,如/admin/videos|/视频|/member/videos用于根据您的角色访问不同的收藏(例如,admin/videos返回所有视频、/videos仅返回公共视频和/member/videos仅返回我的视频...)
1.何时何地加载和存储共享对象,例如currentUser?它应该在任何地方都可用,就像“rails”current_user(我们使用needs for now或App.set(),但不是很满意
1.捕捉“document”DOM元素上的事件的最佳方法,而不是emberjs应用程序视图(例如隐藏/显示类似facebook用户菜单的菜单):我点击一个图标来显示它,我点击DOM文档来隐藏它(有时在我的ember应用程序之外...

hgncfbus

hgncfbus1#

例如,我们正在尝试这样做:

App.ApplicationRoute = Ember.Route.extend 
  setupController: ->
    App.register('controller:currentUserController', App.CurrentUserController );
    App.inject('controller', 'gobalUser', 'controller:currentUserController');

我们得到了这个错误:未捕获范围错误:超出最大调用堆栈大小

px9o7tmv

px9o7tmv2#

1.您在Ember.Route上有一个redirect挂钩。它在网站上有文档记录。
1.我不知道这是如何相关的客户端应用程序。我会想象这种过滤器的后端。

  1. needsApp.inject绝对是你想要的。你应该有一个currentUser控制器,并在你所有的控制器上要求/注入它。
    1.也许在ApplicationRoute中注册一个处理程序,并从那里调度路由器事件。
    一些注意事项:
    App.injectApp.register应该在任何挂接外部调用,如下所示:
    App.inject('controller', 'gobalUser', 'controller:currentUser');

相关问题