首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态添加和移除角5材料属性“multiple”

动态添加和移除角5材料属性“multiple”
EN

Stack Overflow用户
提问于 2018-02-19 20:16:09
回答 4查看 3.2K关注 0票数 3

在这里,我可能缺少一些基本的内容,但我正在使用mat按钮切换组,并且希望能够将其用作单选按钮或复选框,具体取决于应用程序状态(即单选按钮):

代码语言:javascript
复制
<mat-button-toggle-group>

和复选框:

代码语言:javascript
复制
<mat-button-toggle-group multiple>

通常,我会添加和删除标记的属性,如下所示:

代码语言:javascript
复制
<mat-button-toggle-group [attr.multiple]="test ? multiple:null">

..but,这似乎不起作用。有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-19 20:30:35

这不是一个属性。它是mat-button-toggle-group组件中的一个角指令。因此,不可能使用attr.multiple动态添加多个

你必须使用两个垫子组,就像这样:

代码语言:javascript
复制
<mat-button-toggle-group *ngIf="test" multiple></mat-button-toggle-group>
<mat-button-toggle-group *ngIf="!test"></mat-button-toggle-group>
票数 3
EN

Stack Overflow用户

发布于 2018-02-19 20:26:01

因为multiple不是一个属性,而是一个指令,所以如果不访问underliyng组件的源代码,就不能简单地添加它(而且它仍然只是一个黑客)。这是个不幸的消息..。

但是无论如何,您可以创建2个mat组,而不是显示其中的一个,这取决于您的test变量。并保存它的状态,如果它需要本地变量。

票数 1
EN

Stack Overflow用户

发布于 2018-02-19 23:39:32

multiple<select>的本机布尔属性。因此,只有在使用本机选择的情况下,才能执行以下操作:

<select [multiple]="!!yourExpression">

这里你是 stackblitz

不幸的是,我试过这个角度的材料,但它不起作用。它们不支持此属性作为表达式。也许他们决定只以以下方式支持它:<mat-button-toggle-group multiple>

这是github上的代码。显然是指令选择器中的攻击。

PD:@Pterrat awnser可以做你想做的事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48873540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档