我有一个angular应用程序,在其中我有一个表,在页面组件加载的最初,我将有一个表单行。然后当用户将在'description'字段中键入任何内容时,将添加另一行。
下面是component.html
代码
<tr *ngFor="let fullRow of rawCannedService; let rowIndex = index;">
<td scope="row" (click)="onTypeClick()">
<span *ngIf="isTypeLabel">Labor</span>
<select *ngIf="!isTypeLabel" class="form-control" (blur)="onTypeBlur()" [(ngModel)]="serviceRow['type']">
<option value="part">Part</option>
<option value="labour">Labour</option>
</select>
</td>
<td *ngFor="let service of fullRow.row;let i=index" (click)="onCoumnClick(i)">
<span *ngIf="service.labelVisible">{{service.label}}</span>
<input type="text" *ngIf="!service.labelVisible" (blur)="onColumnBlur(i,service.name)" class="form-control" [(ngModel)]="rawCannedService[rowIndex].row[i]['variableRef']">
<!-- <app-table-cell *ngIf="!service.labelVisible" [serviceObj]="service" [colIndex]="i" [rowIndex]="rowIndex" [columnState]="onColumnBlur($event)"></app-table-cell> -->
</td>
null
所以看起来是这样的
这个过程是,当加载模态时,最初文本将代替输入,当用户单击任何列时,它将成为可编辑的输入。问题是,当用户将在description
字段中键入任何内容时,我必须添加下一行。因此,当前行正在添加,但变量没有更新。它还为下一行绑定相同的值。我正在动态绑定ngmodel
变量。下面是添加另一行后的结果
下面是我的component.ts
代码。
columns = [
{ field: 'type', header: 'Type', width: '15%' },
{ field: 'desc', header: 'Description', width: '40%' },
{ field: 'price', header: 'Price', width: '15%' },
{ field: 'qty', header: 'Qty', width: '10%' },
{ field: 'hrs', header: 'HRS', width: '10%' },
{ field: 'subtotal', header: 'SUBTOTAL', width: '10%' }
];
singleRow = [
{ name: 'desc', label: 'Please enter description', labelVisible: true, variableRef : ''},
{ name: 'price', label: '$0.00', labelVisible: true , variableRef : ''},
{ name: 'qty', label: '0', labelVisible: true, variableRef : '' },
{ name: 'hrs', label: '0', labelVisible: true, variableRef : '' },
{ name: 'total', label: '$0.00', labelVisible: true, variableRef : '' }
];
rawCannedService = [];
onCoumnClick(index: number) {
this.rawCannedService[this.selectedRowIndex].row[index].labelVisible = false;
}
onColumnBlur(index: number, field: string) {
console.log('field : ', field);
console.log('row : ', index);
console.log('updated state : ', this.rawCannedService);
this.rawCannedService[this.selectedRowIndex].row[index][field] = this.serviceRow[field];
if (field === 'desc' && this.rawCannedService[this.selectedRowIndex].row[index]['variableRef'].length > 2) {
this.selectedRowIndex++;
this.rawCannedService.push({row : this.singleRow});
}
}
我是否错误地绑定了[(ngModel)]
?
这里有stackblitz供参考
Ahsan,您需要添加一个singleRow的“副本”,而不是singleRow,否则您就有一个唯一的行
push({row : this.singleRow.map(x=>({...x}))})
我正试图从我的角形中得到一些信息。我想在打字时看到输入。我得到这个错误: 这是我的表单html模板。我将ngModel放在表单输入中,我试图通过{{model.name}}绑定键入并查看我的输入。: 这是我的表单组件: 这是我app.module.ts的一部分,我在其中导入了Forms模块: 另外,如果你想查看所有代码,这里是 github 存储库。
问题内容: 我有 一切都正确加载。 然后在我的JavaScript中,我尝试注入ngCookies: 但是它似乎找不到$ cookies: 问题答案: 我不确定您的功能用例是什么,但是您不能在配置块中注入服务(即服务)。仅常量和提供程序可以注入配置块内。 您可以将服务注入运行块,但我不知道这是否对您有帮助,因为我不确定您打算如何处理这些cookie。 顺便说一句:您似乎在混合主角度文件和模块的版本
今天我在家里的电脑上安装了netbean,以便在家做一些工作。我安装了java 8 JDK(151),并安装了包含所有内容的netbean(没有进行自定义安装)。然后我把我的项目从github上撤下来。 我的安装文件夹是在E:\netbean我的项目文件夹是默认的c: 我加载了项目,打开XAMPP并运行它。太好了,很管用。 然后我对HTML进行了更改(修复了我犯的一个拼写错误)。再次运行。找不到零
choice5是一个JComboBox 从choice5中选择项目时 被称为(编辑:对于我可以选择的每个项目,我可能有一个不同的jtable我想要显示) 编辑(SSCCE): MyTableModel
我想安装Primeng7.0.0到我的Angular项目,但首先我需要更新我的JHipster到最后一个版本。 当我将此命令写入terminal时,我得到以下错误
我有两个表,分别名为tblOefenen(带有主键)和tblOefenen2(带有外键)。我已经删除了前面的外键,因为我想添加‘更新级联’到外键。 那么做了什么:1。我已经移除了TbloeFenen2的约束(外键)。2.我已经将新的外键添加到列ID中,我的主键在列ID上,也在表tbloefenen中: 有人能帮我一下吗?