假设我想使用Aurelia的功能...功能,制作一个“用户”功能来管理用户,我对各种crud操作有不同的看法。如何组织创建读取更新删除的路由?这是在功能中完成的吗?它是在应用程序中完成的吗?它的某种组合?请举例。
答案 0 :(得分:1)
不只是通过功能添加路线。
但是,如果要构建更大的应用程序,则可以使用依赖注入容器来公开"路由"对应您的应用程序,哪些功能可以利用和扩展。
main.js
import { MyRouteConfig } from 'myRouteConfig';
@inject(MyRouteConfig)
export class App {
constructor(config) {
this.routes = config.routes;
}
configureRouter(config, router) {
config.map(this.routes);
}
}
通过传递Aurelia对象的configure
函数引入一个特征。您可以使用Aurelia对象DI容器来获取MyRouteConfig
对象的实例;
<强>特征/ index.js 强>
import { MyRouteConfig } from '../myRouteConfig';
export function configure(aurelia) {
let config = aurelia.container.get(MyRouteConfig);
Array.prototype.push.apply(config.routes, [
{ route: 'feature', moduleId: 'feature/home' },
{ route: 'feature/edit', moduleId: 'feature/edit' }
])
}
然而,这根本不是最佳做法。它充其量只是巧妙地使用工具,最糟糕的是黑客。这种方法存在很多陷阱,包括加载正确的模块路径和重叠路径时遇到困难,如果你真的知道自己在做什么,那么你应该只使用这种策略。也就是说,它可以做到。
答案 1 :(得分:0)
您可以执行以下操作:
功能/index.js
import { FrameworkConfiguration } from 'aurelia-framework';
import { Router, RouteConfig } from 'aurelia-router';
export function configure(config: FrameworkConfiguration) {
var router = config.aurelia.container.get(Router) as Router;
let newRoute: RouteConfig = {
route: 'login',
name: 'login',
moduleId: 'login/login',
nav: true,
title: 'Login'
};
router.addRoute(newRoute);
}