我有一个这样的对象列表:
listSubject = [
{name: 'Math', lessonPerWeeks: 1},
{name: 'Lit', lessonPerWeeks: 2},
{name: 'Bio', lessonPerWeeks: 3},
{name: 'Phy', lessonPerWeeks: 7},
{name: 'Remains', lessonPerWeeks: 36},
];
我把它们放在一个输入循环中,像这样改变值:
<div *ngFor="let subject of listSubject">
<input *ngIf="subject.name != 'Remains'" type="number" [(ngModel)]="subject.lessonsPerWeeks" [formControl]="changeValue">
<div *ngIf="subject.name === 'Remain'">
{{subject.lessonPerWeeks}}
</div>
</div>
FormControl: changeValue用于检测
this.changeValue
.valueChanges
.debounceTime(200)
.subscribe(()=>{
for(let i=0; i < this.listSubject.length;i++){
let subject = this.listSubject[i];
let lastSubject = this.listSubject[this.listSubject.length-1];
subject.percentSem1 = subject.lessonPerWeeks/ this.totalLessonPerWeeks * 100;
if(i === this.listSubject.length - 1){
return;
}
else if(i === 0){
lastSubject.lessonPerWeeks = 36;
}
lastSubject.lessonPerWeeks -= subject.lessonPerWeeks;
}
});
我认为我的问题是对所有输入使用表单控件。请帮我解决这个问题。谢谢
阅读@Partha Sarathi Ghosh的回答和评论后。我终于找到了解决办法。我为列表中的每个对象添加了相同的FormControl,然后将它们绑定到HTML中。类型脚本代码:
this.listSubject.forEach((subject)=>{
subject.changeValue = new FormControl();
subject.changeValue
.valueChanges
.debounceTime(200)
.subscribe(()=>{
for(let i=0; i < this.listSubject.length;i++){
let subject = this.listSubject[i];
let lastSubject = this.listSubject[this.listSubject.length-1];
subject.percentSem1 = subject.lessonPerWeeks/ this.totalLessonPerWeeks * 100;
if(i === this.listSubject.length - 1){
return;
}
else if(i === 0){
lastSubject.lessonPerWeeks = 36;
}
lastSubject.lessonPerWeeks -= subject.lessonPerWeeks;
}
});}
和HTML
<div *ngFor="let subject of listSubject">
<input *ngIf="subject.name != 'Remains'" type="number" [(ngModel)]="subject.lessonsPerWeeks" [formControl]="subject.changeValue">
<div *ngIf="subject.name === 'Remain'">
{{subject.lessonPerWeeks}}
</div>
</div>
但是,有没有更好的解决方案?
使用name属性为每个输入独特。其他
<div *ngFor="let subject of listSubject; let i = index">
<input *ngIf="subject.name != 'Remains'"
type="number" name="field_{{i}}"
[(ngModel)]="subject.lessonsPerWeeks" [formControl]="changeValue">
<div *ngIf="subject.name === 'Remain'">
{{subject.lessonPerWeeks}}
</div>
</div>
引用:
angular2-ngmodel-inside-ngfor-data-not-binding-on -
angular2使用ngfor绑定输入元素中的name属性
dynamic-angular2-form-with-ngmodel-of-ngfor-elemen
本文向大家介绍Dapper.NET 针对多组输入执行操作,包括了Dapper.NET 针对多组输入执行操作的使用技巧和注意事项,需要的朋友参考一下 示例 有时,您想多次做同一件事。Execute如果实际上将最外面的参数(通常是单个匿名类型或域模型实例)提供为IEnumerable序列,则Dapper在方法上支持此方法。例如: 在这里,dapper只是对我们的数据做一个简单的循环,基本上和我们做的一
我的表单当前有上面的CSS代码, 我想要能够使标签红色时,字段是必需的。我的输入字段是: 但是CSS不起作用,我该如何解决这个问题呢? 第二个问题是我有以下CSS: 但是当项目被聚焦时,如果我移除“background-color:#ff3434;”,它不会变成黄色。焦点变黄了? 我做不到的事吗?还是我做错了? 谢谢
问题内容: 我有以下形式的文本输入: 我试图让它接受多行输入。宽度和高度会使框变大,但用户可以输入所有想要的文本,但它只能填充一行。 如何使输入更像文本区域? 问题答案: 您需要使用文本区域进行多行处理。
本文向大家介绍C++中输入输出流及文件流操作总结,包括了C++中输入输出流及文件流操作总结的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++中输入输出流及文件流操作笔记,供大家参考,具体内容如下 1、流的控制 iomanip 在使用格式化I/O时应包含此头文件。 stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序
输出操作允许DStream的操作推到如数据库、文件系统等外部系统中。因为输出操作实际上是允许外部系统消费转换后的数据,它们触发的实际操作是DStream转换。目前,定义了下面几种输出操作: Output Operation Meaning print() 在DStream的每个批数据中打印前10条元素,这个操作在开发和调试中都非常有用。在Python API中调用pprint()。 saveAsO
我有两个过程需要在几个领域进行验证。 对于类,我需要验证几个字段。基于这些字段,我将验证这个类。 对于类,我需要验证不同的字段。如果这些字段有效,那么我将验证这个类。 我的两个进程都应该将GenericRecord传递给Validator类,现在取决于它是ProcessA还是ProcessB,我的Validator类应该验证这些字段。 对于ProcessA,我需要验证、、。 对于ProcessB,