2017-12-03 391 views
0

我可能在这里做错了什么,但无法解决此问题。Angular 2中多个三元运算符上的禁用按钮

我试图用两种形式验证 禁用按钮像

this.dailyFlag = true; 
this.monthlyFlag = false; 

,并具有形式

<form (submit)='pushData()' #dailyForm="ngForm">...</form> 
<form (submit)='pushData()' #monthlyForm="ngForm">...</form> 
<button disabled='--- saveral condition as below--' > 
If (dailyFlag && monthlyFlg) then check both forms sholud be valid 
else 
if(daliFlag) then checkFor dailyForm valid only else false 
if(monthlyFlag) then check For monthlyForm valid only else false 

**复制下面的代码,这低于plunker代码执行并检查 https://plnkr.co/edit/JQjLMJiohgOJ8Mf6xbgP?p=preview

回答

0

如果表单无效,将禁用该按钮。如果dailyForm无效或monthlyForm无效

[disabled] = "!dailyForm.valid || !monthlyForm.valid" 

//禁用真正

+0

肯定的,但形式显示/基于像dailyFlag和monthlyFlag这样的标志隐藏。所以如果我把上述条件强制检查这两种形式验证不是一种情况 –

+0

使用[隐藏] =“!dailyForm” – nightElf91

0

这个条件应该工作

[disabled] ="(!dailyForm.valid && dailyFlag) || (!monthlyForm.valid && monthlyFlag)" 

编辑纠正错别字

+0

没有它的不工作 –

+0

对不起,它有错别字,你在测试之前纠正它们吗? – Turo

+0

啊,我发现你的设置有错误:'dailyFlag:true; monthlyFlag:true;'应该是'dailyFlag = true; monthlyFlag = true;' – Turo