【发布时间】:2021-06-03 14:41:23
【问题描述】:
您好,我正在使用引导程序 v4.0.0。使用 navbar-nav 和 ngFor 显示菜单时,始终调用绑定属性 - 这是预期的行为吗?
HTML 代码 sn-p:
<div class="collapse navbar-collapse" id="navbar-content">
<div class="navbar-nav mr-auto">
<ul class="navbar-nav">
<ng-container *ngFor="let navItem of NavItems">
<li class="nav-item">
<a class="nav-link" [routerLink]="[navItem.url]" routerLinkActive="active" [target]="navItem.isLink ? '_blank' : null">{{navItem.displayName}}</a>
</li>
</ng-container>
</ul>
</div>
</div>
component.ts 代码 sn-p:
private _navItems: object;
get NavItems() { // This API is called continuously even after the menu items are loaded
if(!this._navItems){
this._navItems= [
{
"displayName": "TestApp",
"url": "testApp",
"isLink": false,
"requiredRoles": [],
"childNavs": []
},
{
"displayName": "Custom Control",
"url": "custom",
"isLink": false,
"requiredRoles": [],
"childNavs": [
{
"displayName": "JQX Custom Grid",
"url": "custom/grid",
"isLink": true,
"requiredRoles": []
}
]
}
];
}
return this._navItems;
}
get NavItems 绑定一直被调用,即使没有任何变化。
- 这是预期行为吗?
- 有更好的方法吗?
谢谢,
RDV
【问题讨论】:
-
是的,这是由于变化检测而导致的角度预期行为。您可能希望将该组件更改为与推送不同的更改检测策略。有很多关于这个的文章和博客,这里是其中之一:netbasal.com/…
标签: angular bootstrap-4 navbar ngfor