我现在环顾四周,似乎找不到合适的答案......这应该是非常微不足道的......并且随处可见...似乎找不到它......
所以,我有一个非常非常简单的组件/指令,名为navItem
这就是我所说的
<ul>
<nav-item route="/aboutus">About us</nav-item>
<nav-item route="/contactUs">Contact us</nav-item>
</ul>
这就是它里面的东西(nav-item.html):
<li><a [routerLink]="route"><ng-content></ng-content></a></li>
所以我基本上就是这样:
import { Component, Input } from '@angular/core';
import { ROUTER_DIRECTIVES } from '@angular/router';
@Component({
moduleId: module.id,
selector: 'nav-item',
template: require('./nav-item.html'),
directives: [ROUTER_DIRECTIVES]
})
export class NavItem {
@Input() route = '/';
constructor(){}
}
我得到的是
<ul>
<nav-item _ngcontent-xng-6="" route="/aboutus" ng-reflect-route="/aboutus"><li><a ng-reflect-router-link="/aboutus" ng-reflect-href="/aboutus" href="/aboutus">About us</a></li></nav-item>
<nav-item _ngcontent-xng-6="" route="/contactus" ng-reflect-route="/contactus"><li><a ng-reflect-router-link="/aboutus" ng-reflect-href="/contactus" href="/contactus">Contact us</a></li></nav-item>
</ul>
我当然不想要。
我想要的是用<nav-item> </nav-item>
<li><a></a></li>
在AngularJs中非常简单。
答案 0 :(得分:2)
这不受支持,我很确定它将来不会成功。很久以来,replace: true
在Angular1中也被弃用了。
您可以使用
等属性选择器@Component({
moduleId: module.id,
selector: '[nav-item]',
template: require('./nav-item.html'),
directives: [ROUTER_DIRECTIVES]
})
export class NavItem {
@Input() route = '/';
constructor(){}
}
<a [routerLink]="route"><ng-content></ng-content></a>
并像
一样使用它<ul>
<li nav-item route="/aboutus">About us</li>
<li nav-item route="/contactUs">Contact us</li>
</ul>
答案 1 :(得分:0)
我认为你想要的是一个属性指令而不是上面建议的组件。