【问题标题】:Angular 4 function that calls route调用路由的Angular 4函数
【发布时间】:2017-09-04 21:46:47
【问题描述】:

我通过 Angular 网络应用中的菜单设置了路由。菜单的 routerLinks 设置如下面的主页链接:

<a routerLink="home">
            <button md-menu-item>
                <md-icon class="material-icons"> home </md-icon>
                <span> Home </span>
            </button>
        </a>

app.router 包含:

export const router: Routes = [
    { path: '', redirectTo: 'home', pathMatch: 'full'},
    { path: 'home', component: HomeComponent },
];

我想在组件中有一个按钮,该按钮重定向到普通菜单中不可用的查询表单,但在组件中的按钮上放置链接似乎不起作用。这是为什么呢?

对我来说理想的做法是在调用路由的组件中的 html 元素中放置一个函数 - 这可能吗?

【问题讨论】:

    标签: angular routing


    【解决方案1】:

    如果我理解正确的话,是的,当然可以。

    只需将路由器添加到您的组件构造函数中:

    constructor(private router: Router) {}
    

    然后你可以在你的函数中调用Router类的导航函数,点击按钮后会调用该函数,例如:

    this.router.navigate(['home']);
    

    另一种可能是将 [routerLink] 放在 html 标签中:

    <a [routerLink]="['/home']">Go To Home</a>
    

    检查一下:

    https://angular.io/guide/router

    https://angular.io/api/router/Router

    【讨论】:

    • a 链接工作正常,但我更愿意了解第一种方法。我收到一条错误消息,提示导航不可用。然后我导入路由器,但我的 app.router 只导入 Routes 和 RouterModule - 有没有办法解决这个问题?
    • 好吧,奇怪的是,我现在似乎两种方法都可以工作了——我一定是犯了语法错误!感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 2018-01-13
    • 2018-04-09
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多