【问题标题】:Angular Routing By Expression按表达式的角度路由
【发布时间】:2019-03-30 13:10:59
【问题描述】:

我是 Angular 新手,正在学习 Angular 路由部分

这里对于第一个和第二个路由器链接,我使用了静态路径,对于第三个,我尝试了表达式,并且我有一个输入文本框,其模型是“myRoute”.. 我正在尝试输入“第三个”文本框和值绑定到模型“myRoute”中,我在路由中定义了一个组件“ThirdComponent”,但它不起作用

<input type="text" [(ngModel)]='myRoute'>
<nav>
  <ul>
     <li><a routerLink="first">First</a></li> 
     <li><a routerLink="second">Second</a></li>
     <li><a [routerLink]="['myRoute']">Third</a></li>

  </ul>
</nav>

这是我的路线

const appRoutes: Routes = [
  { path: 'first', component: FirstComponent },
  { path: 'second', component: SecondComponent },
  { path: 'third', component: ThirdComponent }
];

这是我收到的错误消息

错误:无法匹配任何路由。 URL 段:'myRoute' 错误:无法匹配任何路由。 URL 段:'myRoute'

只有在文本框中输入文本“第三”后,我才会单击第三个组件链接

【问题讨论】:

  • 你遇到了什么错误?
  • @alokstar 用错误消息编辑了我的问题。
  • 你试过了吗&lt;li&gt;&lt;a [routerLink]="['/myRoute']"&gt;Third&lt;/a&gt;&lt;/li&gt;

标签: angular


【解决方案1】:

在您的原始代码中,您将routerLink 绑定到文字字符串'myRoute',如this answer 中所述。以下语法将routerLink 绑定到组件类的属性myRoute

<a [routerLink]="myRoute">

【讨论】:

  • 谢谢。有效。多谢。我无法在这篇文章的 6 分钟内接受这个答案。稍后会接受它..
  • 但只是想知道,这是绑定语法,我使用的那个叫做??我是新手..所以没有想法,我只是参考了一些网站并以这种方式包含了
  • 您将routerLink 属性绑定到文字字符串'myRoute'。在我的回答中,它绑定到属性myRoute
【解决方案2】:

从您的错误消息看来,“myRoute”已作为字符串传递给路由器,而在您的路由器中,您为“第三”而不是“myRoute”定义了路径。检查“myRoute”上的数据绑定。

<a [routerLink]="myRoute">

应该这样做!

【讨论】:

  • 谢谢。有效。多谢。我无法在这篇文章的 6 分钟内接受这个答案。稍后会接受它..
猜你喜欢
  • 2019-11-02
  • 1970-01-01
  • 2013-08-04
  • 1970-01-01
  • 2015-06-13
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多