1

我与Angular2和MaterialDesignLite工作,要实现就像这一个菜单:Angular2 + MaterialDesignLite:添加HTML属性动态

<ul class="mdl-menu mdl-menu--bottom-left mdl-js-menu mdl-js-ripple-effect" 
    for="demo-menu-lower-left"> 
    <li class="mdl-menu__item">Some Action</li> 
    <li class="mdl-menu__item mdl-menu__item--full-bleed-divider">Another Action</li> 
    <li disabled class="mdl-menu__item">Disabled Action</li> 
    <li class="mdl-menu__item">Yet Another Action</li> 
</ul> 

让我们专注于残疾人财产。我希望它在我想禁用菜单项时仍然出现,仍然可见。这是我到目前为止已经取得的成就:

<div class="mdl-menu__container-menu"> 
    <div class="mdl-menu__outline mdl-menu--bottom-right"></div> 
    <ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect" [attr.for]="id"> 
     <li [attr.disabled]="item.disabled" *ngFor="#item of items" class="mdl-menu__item" (click)="onClick($event, item.id)">{{item.text}}</li> 
    </ul> 
</div> 

不幸的是,MDL <li>禁用属性不与一个布尔值工作(禁用=“true”或禁用=“假”行为就像禁用本身)和已禁用不是<li>的本地属性,Angular2不允许我将它设置为[disabled]="item.disabled"

有什么办法可以设置禁用属性本身,在特定的条件下,通过使用指令?

有什么办法可以有条件地设置一个属性(没有任何赋值)或指令在一个组件动态?

在此先感谢您的帮助!

回答

1

我还没有找到一种方式来获得

<li disabled 

但添加删除作品与

<li [attr.disabled]="item.disabled ? true : null" 

导致

<li disabled="true" 

<li 
+0

谢谢,这解决了我的问题!我试图通过使用指令'* disabled =“condition”'并直接在nativeElement上设置** disabled **属性来实现它。不幸的是,因为它在模板区域内(for循环),所以不起作用。 –