Аурелия: не могу найти название маршрута

Я пытаюсь перейти к маршруту следующим образом:

add.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.

Это потому, что маршрут для дома находится в массиве? Я попытался разделить "" и "домой", но ошибка остается.

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");
    }
}
Другие вопросы по тегам