【问题标题】:How to build a nav bar using *ngIf?如何使用 *ngIf 构建导航栏?
【发布时间】:2017-06-28 06:40:16
【问题描述】:

我正在尝试在 Angular 4 中动态构建导航栏并同时了解 Angular。

app.components.ts

import {Component} from '@angular/core';

export class newRoutes{
    route: string;
}
var NEWROUTES: newRoutes[]=[
    {route: "<li><a routerLink='/home'   routerLinkActive='active' [routerLinkActiveOptions]=' {exact: true}'>Home</a></li>"},
    {route: "<li><a routerLink='/scan'   routerLinkActive='active'>Order</a> </li>"},
    {route: "<li><a routerLink='/find'   routerLinkActive='active'>Search</a></li>"},
    {route: "<li><a routerLink='/status' routerLinkActive='active'>Status</a></li>"}
]
@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
})
export class AppComponent {
    title = 'Inspiredby';
    newroutes: newRoutes[] = NEWROUTES;
}

app.component.html

<div style="text-align:center">
    <p>{{title}}</p>
</div>
<nav>
    <ul>
        <li *ngFor="let newroute of newroutes">{{newroute.route}}</li>
    </ul>
</nav>
<router-outlet></router-outlet>

请查看图片了解结果。

我尝试将 *ngFor 放在 &lt;ul&gt;&lt;div&gt; 之间的 &lt;ul&gt;&lt;/ul&gt; 标记之间。

我认为 ngIf 和 ngFor 在呈现之前已应用于代码。 PS 我试过用谷歌搜索它,有一些解决方案,但它们不适合我的工作方式。

【问题讨论】:

  • 那么问题是什么?你指的*ngIf在哪里?

标签: angular ngfor


【解决方案1】:

你的 html 应该是这样的。你传递 html 所以你需要绑定 html

<div style="text-align:center">
    <p>{{title}}</p>
</div>
<nav>
    <ul>
        <li *ngFor="let newroute of newroutes"><span [innerHtml]="{{newroute.route}}"></span></li>
    </ul>
</nav>
<router-outlet></router-outlet>

改变数组

var NEWROUTES: newRoutes[]=[
    {route: "<li><a [routerLink]="['/home']"   routerLinkActive='active' [routerLinkActiveOptions]=' {exact: true}'>Home</a></li>"},
    {route: "<li><a [routerLink]="[/scan']"   routerLinkActive='active'>Order</a> </li>"},
    {route: "<li><a [routerLink]="['/find']"   routerLinkActive='active'>Search</a></li>"},
    {route: "<li><a [routerLink]="[/status']" routerLinkActive='active'>Status</a></li>"}
]

【讨论】:

  • 导航栏现在显示谢谢,但它不再工作了。我相信这是因为 Angular 在我的 html 中删除了一些内容。有一个警告导航到localhost:4200 5platform-b​​rowser.es5.js:1017 警告:清理HTML 删除了一些内容(参见g.co/ng/security#xss)。
猜你喜欢
  • 2022-10-21
  • 2022-01-03
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多