Angular 2 - 更新 ngModel
Angular 2 - updating ngModel
我有一个 table 的列表。当用户单击 table 时,会发生这种情况:
(click)="selectedTable=table"
并且出现了一个允许编辑 selectedTable
的新表单。
该表单包含以下输入:
<md-input [(ngModel)]="selectedTable.name" name="name"></md-input>
还有一个更新更改的按钮..
<button (click)="updateTable(selectedTable)">Update</button>
和一个取消按钮:
取消
我的问题
当我更新我的输入时,table 列表(界面)也会根据输入中的内容发生变化。但是,当我更改我的输入然后单击 "Cancel" 时,界面会显示 table 列表以及更新后的 table,它仅在界面中更新,并且不在我的服务器端(因为我没有点击更新)。
如何在单击取消时恢复对 selectedTable
所做的更改?
或者换句话说:如何通过输入更改我的table并在点击更新后才在界面中更新?
为了仅在单击更新时更新,您需要将任何修改后的值与未修改的版本分开存储。在这种情况下,这意味着您需要绑定 [(ngModel)]="newTable.name"
或类似的东西,然后只有当更新功能是 运行 时,您才会分配 selectedTable = newTable
.
之所以需要这样做,是因为双向绑定是一种近乎实时的更新机制。对您的输入所做的任何更改都会立即反映在您的 [(ngModel)]
.
中
为了正常工作,您需要实施 NgOnInit
来为模型分配 selectedTable
的值,然后处理新的 table 成为selectedTable
你需要实现 NgOnChanges
并观察 selectedTable
变量。
我有一个 table 的列表。当用户单击 table 时,会发生这种情况:
(click)="selectedTable=table"
并且出现了一个允许编辑 selectedTable
的新表单。
该表单包含以下输入:
<md-input [(ngModel)]="selectedTable.name" name="name"></md-input>
还有一个更新更改的按钮..
<button (click)="updateTable(selectedTable)">Update</button>
和一个取消按钮: 取消
我的问题
当我更新我的输入时,table 列表(界面)也会根据输入中的内容发生变化。但是,当我更改我的输入然后单击 "Cancel" 时,界面会显示 table 列表以及更新后的 table,它仅在界面中更新,并且不在我的服务器端(因为我没有点击更新)。
如何在单击取消时恢复对 selectedTable
所做的更改?
或者换句话说:如何通过输入更改我的table并在点击更新后才在界面中更新?
为了仅在单击更新时更新,您需要将任何修改后的值与未修改的版本分开存储。在这种情况下,这意味着您需要绑定 [(ngModel)]="newTable.name"
或类似的东西,然后只有当更新功能是 运行 时,您才会分配 selectedTable = newTable
.
之所以需要这样做,是因为双向绑定是一种近乎实时的更新机制。对您的输入所做的任何更改都会立即反映在您的 [(ngModel)]
.
为了正常工作,您需要实施 NgOnInit
来为模型分配 selectedTable
的值,然后处理新的 table 成为selectedTable
你需要实现 NgOnChanges
并观察 selectedTable
变量。