如何在输入中更改节点属性值?

时间:2019-07-04 16:18:03

标签: angular typescript data-binding treenode

如您在屏幕快照中所见,我正在尝试显示node.name和node.value。 node.value显示在<input>中,所以如果我想更改它。但是,当我在输入字段中写入内容时,位于dataSource.data中的原始数据不会更改-保持不变。显然,没有两种绑定方式,但是如何实现呢?

我尝试过使用([ngModel])="node.value",但这没用。

<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
<mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding matTreeNodeToggle>
<button mat-icon-button disabled></button>
<div class="col-l-4 col-m-4 col-s-4">
{{node.name}}
<span class="required" *ngIf="node.mandatory === 1">*</span>
</div>
<div class="col-l-8 col-m-8 col-s-8">
<input [type]="node.base_Type" class="form-input" [value]='node.value'>
</div>
</mat-tree-node>
<mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding>
<button mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.name">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
<strong>{{node.name}}</strong>
</mat-tree-node>
</mat-tree>

所以我想,最后我将从dataSource.data中提取数据,那些在那里被更改的节点的属性值发生了变化,而不是原始的。

0 个答案:

没有答案