2016-11-29 43 views
1

我有这个角2模板,我的网站上的显示选项卡:角2的WebPack:意外的结束标记“一”

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

它工作得很好。然后,我尝试使用默认选项创建独特的* .js文件的Webpack:它仍然有效。 最后,在的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>'} 
+0

几件事情:您使用的是'角cli'?另外,我很惊讶这个作品。 'routerLink'应该是一个绑定的属性并且接受一个表示路径的[数组数组](https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array),所以它应该看起来像''。最后,是否有一个原因使用'* ngIf'来渲染组件而不是''?路由器插座是这样做的更正确的方式,但我有兴趣知道是否有特定的情况需要这样做。 – filoxo

回答

4

我想这个问题是与htmlLoader。根据您的webpack版本,您应该在您的webpack配置中将minimize选项设置为false。

的WebPack 1

htmlLoader: { 
    minimize: false 
}, 

的WebPack 2

plugins: [ 
    new webpack.LoaderOptionsPlugin({ 
     options : { 
      htmlLoader : { 
       minimize : false 
      } 
     } 
    }) 

] 
0

/私人/家庭/ {{I}}(您的配置的根内) - >这不是“”。

尝试一下本作routerLink

<a [routerLink]="['/private/home/',i]">{{tab}}</a> 
+0

谢谢。它的工作原理,但现在我在其他文件中有很多错误。看起来,当模板文件不内联在.ts文件中时,webpack无法正确处理Angular 2语法。 –

+0

我使用角度2.2.x版本和angular-cli,我在不同的位置有模板文件,看起来很好。如果您有任何问题,请让我们帮助您。 –