Ember - 用户模拟的高级路由结构

时间:2017-02-23 02:11:44

标签: javascript ember.js routing routes

在我的应用中,我有以下用户层次结构organisation (org) > reseller > customer。从业务角度来看,层次结构中的所有三种用户类型都是:customer_id的客户。从应用程序的角度来看,它们是单独关注的问题,能够在层次结构中模拟用户。

所以他们的基本网址都相当于:

localhost/org/:customer_id.

但是,组织可以通过以下方式进入经销商:

localhost/org/:customer_id/reseller/:customer_id.

组织和经销商都可以通过以下方式进入客户:

localhost/org/:customer_id/reseller/:customer_id/customer/:customer_id 要么 localhost/reseller/:customer_id/customer/:customer_id

此结构的问题

主要问题是每个客户都有自己的网站和服务路线。我想避免在顶级:customer_id下重复路由。基本上以下面的结尾。

Router.map(function() {
  this.route('org', { path: 'org/:customer_id' }, function() {
    this.route('site');
    this.route('service');
    this.route('reseller', { path: 'reseller/:customer_id' }, function() {
      this.route('site');
      this.route('service');
      this.route('customer', { path: 'customer/:customer_id' }, function() {
        this.route('site');
        this.route('service');
      });
    });
  });
});

但是我不确定如何拆分路由以便它们继承正确的URL结构但不嵌套。并且每个客户都可以在正确的级别访问/模拟。

作为旁白

如果我无法弄清楚如何执行此操作,我计划使用用户服务为模拟设置currentUser变量,然后为每个客户剥离localhost/org/:org_id/的URL。但这不会反映网址中的模拟级别。

0 个答案:

没有答案