我有一个拉菜单项列表的服务,并在* ng中加载项目。菜单项目列表还包括菜单项目的状态。Angular 2:函数中的[ngClass]更新条件
服务
buttonlist = [
{id: 1, menu: 'me', status: 'active',children: 2,3,4 },
{id: 2, menu: 'home', status: 'nonactive'},
{id: 3, menu: 'contact', status: 'nonactive'},
{id: 4, menu: 'location', status: 'nonactive'}
];
组件
<ul>
<li *ngFor="let button of buttons " [ngClass]="'active' == buttons[subButton].status ? 'active' : 'hide'"
(click)="execCommand(button)"
>
{{button.id}}
<ul *ngFor="let subButton of button.children " >
<li
(click)="execCommand(button)"
[ngClass]="'active' == buttons[subButton].status ? 'active' : 'hide'"
>
{{buttons[subButton].status}} </li>
</ul>
</li>
</ul>
组件功能
execCommand(button){
button.status = 'non-active';
}
如果我登录按钮状态。它只表示我已经更新了对象数据,但它没有被渲染。如何使这个按钮更新状态显示活动类?
我的菜单基本上是ID 1是顶级,其余的都是儿童,onclick我想删除所有兄弟姐妹的活动,只有活跃的按钮,我点击,除非我点击顶级比只是有顶级活跃和所有的孩子。
我没有使用路由,因为我有一个页面应用程序与几个级别的菜单项,如果用户单击它加载选项卡。
我创建了一个正常工作的潜水员,请您澄清一下您想达到的目标? https://plnkr.co/edit/wvDSzf2mHu39NLkVhc2I?p =预览 – karser
当用户点击兄弟姐妹(顶级或子级别)时,它会将其他兄弟变为无效,并且它所点击的项目处于活动状态。 –
我更新了那个看起来非常类似于你所描述的https://plnkr.co/edit/wvDSzf2mHu39NLkVhc2I?p=preview – karser