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