如果我有这样的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和静态服务,是吗?
答案 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'));
}
}
我确信这可能不是最好的方法来实现这一目标,但它似乎现在正在起作用。如果我遇到任何问题,我会确定并更新。
此外,如果其他人想要提出任何其他想法,疑虑,建议或反馈,请做!谢谢!