Aurelia:找不到路线的名称
Posted
技术标签:
【中文标题】Aurelia:找不到路线的名称【英文标题】:Aurelia: can't find name of Route 【发布时间】:2016-04-27 18:02:25 【问题描述】:我正在尝试导航到如下路线:
添加.js:
import HttpClient from "aurelia-http-client";
import $ from "jquery";
import Router from "aurelia-router";
const baseURI = "/posts";
export class Add
constructor()
this.router = new Router();
add()
let url = this.router.generate("home");
this.router.navigate(url);
app.js:
configureRouter(config, router)
this.router = router;
config.map([
route: ["", "home"],
moduleId: "./home",
title: "Home",
name: "home",
nav: true
,
route: "add",
moduleId: "./add",
title: "Add New Post",
name: "Add",
nav: true
]);
我收到此错误:A route with name 'home' could not be found. Check that name: 'home' was specified in the route's config.
是因为回家的路线在数组中吗?我尝试将“”和“家”分开,但错误仍然存在。
【问题讨论】:
试试这个:this.router.navigateToRoute('home');
我收到与navigateToRoute
相同的错误
哪一行报错了?第一还是第二?显示 add.js 的完整代码。也许你没有正确注入路由器
好的,我会更新我的问题,同样在你的第一个建议之后我改为以下代码://let url = this.router.generate("home"); this.router.navigateToRoute("home");
如果这不是你的意思,请纠正我......并在@987654327 上得到错误@线
【参考方案1】:
你必须注入路由器。这样做,框架会为您提供 app.js 配置的相同实例
import inject from 'aurelia-dependency-injection'; //or aurelia-framework
import HttpClient from "aurelia-http-client";
import $ from "jquery";
import Router from "aurelia-router";
@inject(Router)
export class Add
constructor(router)
this.router = router;
add()
//let url = this.router.generate("home");
this.router.navigateToRoute("home");
【讨论】:
哦,我现在看到了问题所在。我想知道这两个路由器是如何相互了解的。还有一件事,我在@inject(Router)
行收到语法错误,我是否必须在 jspm 中添加一些依赖项等?
不,你没有。试试import inject from 'aurelia-framework';
我首先将它与“aurelia-framework”一起使用。但是现在已经解决了,必须在config.js
的babelOptions中添加"es7.decorators",
另外,您的解决方案现在按预期工作。感谢您的解释。以上是关于Aurelia:找不到路线的名称的主要内容,如果未能解决你的问题,请参考以下文章