【发布时间】:2016-11-29 20:46:42
【问题描述】:
我有这个 Angular 2 模板,它显示我网站的标签:
<div id="menu">
<ul id="tabs">
<li *ngFor="let tab of tabs; let i = index" [class.active]="selectedTab===i">
<a routerLink="/private/home/{{i}}">{{tab}}</a>
</li>
</ul>
</div>
<div class="tabContent">
<span *ngIf="selectedTab==0"><welcome></welcome></span>
<span *ngIf="selectedTab==1"><boiler></boiler></span>
</div>
效果很好。然后,我尝试使用带有默认选项的 Webpack 来创建唯一的 *.js 文件:它仍然有效。 最后,在 Webpack 中,我激活了最小化 .js 文件的选项,我得到了这个错误:
Unexpected closing tag "a" (" of tabs; let i = index" [class.active]="selectedTab===i">
<a routerlink=/private/home/{{i}}>{{tab}}[ERROR ->]</a> </li> </ul> </div>
<div class=tabContent> <span *ngif="selectedTab==0"><welcome></welcome></span")
关于这个错误的任何想法?
这里是Webpack生成的相关代码:
function(t,e){t.exports='<div id=menu> <ul id=tabs> <li *ngfor="let tab of tabs;
let i = index" [class.active]="selectedTab===i">
<a routerlink=/private/home/{{i}}>{{tab}}</a> </li> </ul> </div> <div class=tabContent>
<span *ngif="selectedTab==0"><welcome></welcome></span> <span *ngif="selectedTab==1">
<boiler></boiler></span> </div>'}
【问题讨论】:
-
几件事:你在使用
angular-cli吗?另外,我很惊讶这有效。routerLink应该是一个绑定属性并接受一个代表路径的array of values,所以它应该看起来像< a [routerLink]="['/private', 'home', i]"></a>。最后,您使用*ngIf来渲染组件而不是<router-outlet>是否有原因?路由器插座是更正确的方法,但我很想知道是否有特定情况需要这样做。