【问题标题】:#Aureliajs: Two routes have the same module. How to configure them?#Aureliajs:两条路线具有相同的模块。如何配置它们?
【发布时间】:2017-01-17 21:28:47
【问题描述】:

两条路线具有相同的模块。如何配置它们? AuthorizeStep 到位(不同的授权规则)。

【问题讨论】:

    标签: routes aurelia


    【解决方案1】:

    实际的路由配置在 AuthorizeStep 中通过navigationInstruction.config 可用,因此您可以使用route.name、远程请求或additional route data 等来实现您的逻辑...

    演示:https://gist.run/?id=c8bdb291aa052ee92b4a1403e4ac10d1

    我们有 2 条路线:route1route2。当route1 可以访问时,route2 会进入错误页面。

    class AuthorizeStep {
    
      run(navigationInstruction, next) {
    
        if (navigationInstruction.config.name !== "unauthorized") {       
          var hasPermission = navigationInstruction.config.name === "route1";
    
          if (!hasPermission) {
            return next.cancel(new Redirect('unauthorized'));
          }
        }
    
        return next();
      }
    
    }
    

    ModuleId 在这种情况下无关紧要。但是,重复使用相同的 VM 可能会导致另一个问题。我会考虑将 viewmodel 的当前 activationStrategy 更改为 activationStrategy.replace 以便每次都获得一个新的 VM 实例。 Docs: Reusing an existing VM section.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2019-09-08
      • 2016-08-30
      • 2016-10-02
      相关资源
      最近更新 更多