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:找不到路线的名称的主要内容,如果未能解决你的问题,请参考以下文章

Aurelia 在使用变量的 setRoot 时找不到具有 ID 的模块

找不到Aurelia捆绑

找不到模块错误的 gulp 命令

在日本找不到公交路线

找不到路线。 PHP

Laravel - 找不到路线