当我console.log用户的单选按钮选择时,记录的总是后面一个
When I console.log a user's radio button selection, what logs is always one behind
由于某种原因,当我console.log用户的单选按钮选择时,记录到控制台的内容总是滞后的。为什么会这样?对于初始状态,我有一个默认的单选按钮选择设置为"all"。当用户单击"Option a"时,记录到控制台的是初始状态的"all"。当我再次点击"选项B"时,记录的是之前选择的"选项A"。为什么只有一次?我该如何解决这个问题?
public user: User;
public categories = [
{ value: 'T', display: 'All', count: 232 },
{ value: 'A', display: 'Choice A', count: 22 },
{ value: 'B', display: 'Choice B', count: 43 },
{ value: 'C', display: 'Choice C', count: 35 },
{ value: 'D', display: 'Choice D', count: 62 },
];
ngOnInit() {
this.user = {
category: this.categories[0].value
}
}
select(isValid: boolean, f: User) {
if (!isValid) return;
console.log(f);
console.log(this.user.category);
}
和HTML:
<form #f="ngForm" novalidate>
<div class="form-group">
<div class="radio" *ngFor="let category of categories">
<label>
<input type="radio" name="category" [(ngModel)]="user.category" [value]="category.value" (click)="select(f.value, f.valid)">
{{category.display}}
</label>
<span class="num-results">{{category.count}}</span>
</div>
</div>
</form>
用ngModelChange
代替click
(ngModelChange)="select(f.value, f.valid)"
在ngModel
有机会更新表单之前处理(click)
事件。
元素上的绑定顺序并没有定义事件处理的顺序。
相关文章:
- 将一个表的id与另一个表中的user_id进行匹配,以获取mysql中的记录
- 我怎么能把一个错误当作未捕获的错误来记录呢
- HTML5历史记录-返回上一个完整页面按钮
- 如何记录调用另一个函数的函数的返回值
- 制作一个阻止存储在浏览器历史记录中的网页
- 在Javascript中的一个Open()记录集函数中使用多个查询
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- $http请求在一个请求中返回所有记录而不分页
- ASP ADO记录集.NextRecordset()在没有下一个记录集时中断
- 为什么这个JS for在循环中只记录一个属性的键,而不是整个属性
- Rails,javascript在转到下一个记录时不起作用
- 将两个数组连接到一个记录数组中
- 从AngularJS在Rails中创建一个记录
- Emberjs将select's的值设置为一个记录
- 我如何找到一个记录烬与关联承诺
- PHP或javascript文本文件分号db使用一个记录显示另一个悬停
- Extjs 4.2可排序的网格与固定位置的一个记录
- Meteor JS:我如何访问集合中的前一个记录
- 我必须在客户端创建一个记录吗?
- 如何使只有一个记录在网格作为不可编辑使用Kendoui