路由如何与Aurelia中的功能一起工作?
假设我想使用Aurelia的功能。。。功能,使一个“用户”功能来管理用户,我对各种crud操作有不同的看法。如何组织创建读取更新删除的路由?这是在功能中完成的吗?是在应用程序中完成的吗?它们的一些组合?请提供一个例子。一个人不能简单地通过功能添加路由 但是,如果您正在构建一个更大的应用程序,您可以使用依赖项注入容器向您的应用程序公开一个“路由”对象,这些特性可以利用和扩展 main.js路由如何与Aurelia中的功能一起工作?,aurelia,Aurelia,假设我想使用Aurelia的功能。。。功能,使一个“用户”功能来管理用户,我对各种crud操作有不同的看法。如何组织创建读取更新删除的路由?这是在功能中完成的吗?是在应用程序中完成的吗?它们的一些组合?请提供一个例子。一个人不能简单地通过功能添加路由 但是,如果您正在构建一个更大的应用程序,您可以使用依赖项注入容器向您的应用程序公开一个“路由”对象,这些特性可以利用和扩展 main.js import { MyRouteConfig } from 'myRouteConfig'; @injec
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
对象的实例
feature/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' }
])
}
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);
}
但是,这根本不是最佳做法。这充其量是对工具的巧妙使用,最糟糕的是一种黑客行为。这种方法有很多缺陷,包括难以加载正确的模块路径和重叠的路由,只有在您真正知道自己在做什么时才应该使用这种策略。也就是说,这是可以做到的。您可以做到的是: feature/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' }
])
}
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);
}
推荐的方法是什么?我想我很困惑,因为我有到一个子目录的路由,而这个子目录不是一个特性。但我正在考虑制作这些功能,并试图从路由的角度找出如何使用这些功能。如果有路由,那么这可能是应用程序不可分割的一部分。功能就像小型本地插件,模块化。不要将功能用于应用程序的组成部分。如果此答案对您有帮助,请进行投票,如果回答了您的问题,请接受。