У меня есть массив подобных объектов, который упрощен из данных, поступающих из http-запроса.
displayArgs = [{paramName: 'Nam1', paramValue: ''}, {paramName: 'Nam1', paramType: ''}, {paramName: 'Nam1', paramType: ''}, {paramName: 'Nam1', paramType: ''}]
Я использую * ngFor для отображения этих значений, я заполняю эти paramValues, используя поле ввода,
<div *ngIf="showParams" class="block-details templateParams">
<table class="paramTable">
<thead>
<tr>
<th>paramName</th>
<th>paramValue</th>
</tr>
</thead>
<tbody>
<tr>
<td> {{arg.paramName}}</td>
<td><textarea formControlname="selectedParamValue" name="param-{{arg.paramName}}" id="param-{{arg.paramName}}" [ngModelOptions]="{standalone: true}" [(ngModel)]="displayArgs[i].paramValue"></textarea>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div *ngIf="showParams" class="template-strings">
<h4>Template String</h4>
<p>you can copy paste the string below into your article template:</p>
<span #template class="template-string">
{{template_string}}
</span>
<a
(click)="addTemplateToEditor(template, block)"
class="c-btn c-btn--info blocks-btn"
>
<i class="fa fa-newspaper-o u-mr-xsmall"></i> Use Block
</a>
</div>
<div class="errorMsg" *ngIf="showNoTemplateError">
<p>No Parameters found for this block.</p>
<div class="template-strings">
<h4>Template String</h4>
<p>you can copy paste the string below into your article template:</p>
<span #template class="template-string">
{{template_string}}
</span>
<a
(click)="addTemplateToEditor(template, block)"
class="c-btn c-btn--info blocks-btn"
>
<i class="fa fa-newspaper-o u-mr-xsmall"></i> Use Block
</a>
</div>
</div>
</div>
Я пытаюсь вставить значения paramValues в строку ввода.Вот что я пытаюсь отобразить в шаблонной строке.
this.template_string = `$(kb.template_block('${this.block.data.template_block.name}'))`;
if(this.displayArgs.length > 0 ){
this.displayArgs.map(res =>{
this.template_string = this.template_string.slice(0, this.template_string.indexOf(')') ) + `, ${res.paramName} = '${res.paramValue}' ))`
})
Проблема в том, что ngModel отображает обновленные значения в консоли, но не обновляет в строке.Я использую строку шаблона при изменении значения из выбора, подобного этому.
<select (change)="selectedTemplate($event)" formControlName="templateBlock" class="c-select select2-container select2-container--default select2-container--below" id="select1" required>
<option *ngFor="let block of blocks;let i = index;" [value]="block.block_id">{{block.name}}</option>
</select>