Aurelia多页面应用?

时间:2017-03-03 09:14:50

标签: url-routing aurelia aurelia-router

如果我有这样的main.ts文件设置......

Main.ts

import {Aurelia} from 'aurelia-framework'
import environment from './environment';

//Configure Bluebird Promises.
(<any>Promise).config({
  warnings: {
    wForgottenReturn: false
  }
});

export function configure(aurelia: Aurelia) {
  aurelia.use
    .standardConfiguration()
    .feature('resources');

  if (environment.debug) {
    aurelia.use.developmentLogging();
  }

  if (environment.testing) {
    aurelia.use.plugin('aurelia-testing');
  }



  // PLAYING AROUND - Log to Console the Value of ShowLanding Session Storage
  let showLanding = false;
  console.log(showLanding);
  // let showLanding = sessionStorage.getItem("show_landing");

  if (showLanding || showLanding === null) {
    aurelia.start().then(() => aurelia.setRoot('landing'));
  } else {
    aurelia.start().then(() => aurelia.setRoot('blog/blog'));
  }
}

我的应用根目录中有一个“Landing.html / .ts”文件,这段代码似乎运行良好。这意味着,如果“showLanding = false”,应用程序将加载到我的“blog.html”页面,如果是真的,它将加载到我的“Landing.html”页面。

我要做的是创建一个管理页面。随时访问URL“.... com / admin”将我带到我已设置的“admin.html”页面。

可以做前端吗?只有我知道的其他方法是匹配来自服务器路由的URL和静态服务,是吗?

1 个答案:

答案 0 :(得分:1)

我设法通过简单地阅读window.location.pathname并将我的管理页面设置为app root来实现这个工作(我希望它工作的方式)。

so my Main.ts was changed to:

  ...

  if (showLanding || showLanding === null) {
    aurelia.start().then(() => aurelia.setRoot('landing'));
  } else if (window.location.pathname == "/admin") { 
    aurelia.start().then(() => aurelia.setRoot('admin/admin'));
  } else {
    aurelia.start().then(() => aurelia.setRoot('blog/blog'));
  }
}

我确信这可能不是最好的方法来实现这一目标,但它似乎现在正在起作用。如果我遇到任何问题,我会确定并更新。

此外,如果其他人想要提出任何其他想法,疑虑,建议或反馈,请做!谢谢!