angular - 如何根据角度中的单选按钮选择来增加变量
问题描述
我有两个无线电组,如下所示
<mat-radio-group
[(ngModel)]="firstGroup">
<mat-radio-button class="example-radio-button" value=1>Thin Build</mat-radio-button>
<mat-radio-button class="example-radio-button" value=2>Medium Build</mat-radio-button>
<mat-radio-button class="example-radio-button" value=3>Large, solid body build</mat-radio-button>
</mat-radio-group>
<mat-radio-group
[(ngModel)]="secondGroup">
<mat-radio-button class="example-radio-button" value=1>Tall by nature</mat-radio-button>
<mat-radio-button class="example-radio-button" value=2>Medium Strength</mat-radio-button>
<mat-radio-button class="example-radio-button" value=3>Calm, Slow and relaxed</mat-radio-button>
</mat-radio-group>
我有 ngIf 语句及其工作,但变量没有递增
<div *ngIf="firstGroup == 1">Value is {{bvariable + 1}}</div>
<div *ngIf="secondGroup == 1">Value is {{bvariable + 1}}</div>
bvariable 在 TS 中初始化
export class MainNavComponent { bvariable =0;}
如果用户同时单击值为 1 的单选按钮,则 b 变量需要为 2,但显示为 1
不确定,我的方法正确。请纠正我,如果我错了。
解决方案
目前尚不清楚在其他选项组合中应该发生什么,但您可以使用基于两个组选择ngModelChange
进行更新,如下所示bvariable
<mat-radio-group
[(ngModel)]="firstGroup"
(ngModelChange)="onFirstGroupChange()">
<mat-radio-button class="example-radio-button" [value]="1">Thin Build</mat-radio-button>
<mat-radio-button class="example-radio-button" [value]="2">Medium Build</mat-radio-button>
<mat-radio-button class="example-radio-button" [value]="3">Large, solid body build</mat-radio-button>
</mat-radio-group>
<mat-radio-group
[(ngModel)]="secondGroup"
(ngModelChange)="onSecondGroupChange()">
<mat-radio-button class="example-radio-button" [value]="1">Tall by nature</mat-radio-button>
<mat-radio-button class="example-radio-button" [value]="2">Medium Strength</mat-radio-button>
<mat-radio-button class="example-radio-button" [value]="3">Calm, Slow and relaxed</mat-radio-button>
</mat-radio-group>
export class MainNavComponent {
bvariable = 0;
firstGroup = 0;
secondGroup = 0;
onFirstGroupChange() {
if(this.firstGroup === 1 && this.secondGroup === 1) {
this.bvariable = this.firstGroup + this.secondGroup;
} else {
this.bvariable = 0;
}
}
onSecondGroupChange() {
if(this.firstGroup === 1 && this.secondGroup === 1) {
this.bvariable = this.firstGroup + this.secondGroup;
} else {
this.bvariable = 0;
}
}
}
您可以对两个无线电组使用相同的处理程序,如果您需要选择值作为数字,您需要使用值绑定,如下所示[value]="1"
推荐阅读
- python - Python 3 性能:实例变量与局部变量
- flutter - Flutter RenderFlex 子节点具有非零 flex 但传入的高度约束是无界的问题
- ios - 尝试在闭包内使用常量属性时 Xcode 中的错误
- c# - 从 postgres 插入返回一个值并使用它在不同的表上插入新记录
- rabbitmq - RabbitMQ 中的 prefetchSize 是什么?
- android - 如何在 ConstraintLayout 中设置视图的绝对位置
- javascript - React Hooks 中的正则表达式
- android - Android Studio - ListView - getFilter().filter() 后 setOnItemClickListener 的位置错误
- c++ - 调试断言失败,表达式:(unsigned)(c + 1) <=256 Ask Question c++
- javascript - 使用 eventbrite API 的困惑