大家好,
我正在尝试使用ng表实现内联行编辑
当我点击编辑图标然后我更改了值然后我点击了保存图标我就得到了以下错误
TypeError:无法读取属性' untrack'未定义的
请找到plunker Inline row edit using ng table for details coding
<table
class="alignment table table-striped table table-bordered table-hover table-condensed editable-table demoTable"
ng-table="tableParams" ng-show="showTable" ng-form="tableForm" demo-tracked-table="tableTracker">
<colgroup>
<col width="45%" />
<col width="45%" />
<col width="10%" />
</colgroup>
<tr ng-repeat="row in $data" ng-form="rowForm" demo-tracked-table-row="row">
<td data-title="'INR Rate'" ng-switch="row.isEditing" ng-class="inrRate.$dirty ? 'bg-warning' : ''" ng-form="inrRate" demo-tracked-table-cell>
<span ng-switch-default class="editable-text">{{row.INRRate}}</span>
<div class="controls" ng-class="inrRate.$invalid && inrRate.$dirty ? 'has-error' : ''" ng-switch-when="true">
<input type="number" name="inrRate" ng-model="row.INRRate" class="editable-input form-control input-sm" required />
</div>
</td>
答案 0 :(得分:4)
我遇到了同样的问题,但在调查示例代码后没有运气。 我修改了代码,它一直运行到现在。
但是,var originalRow = resetRow(row, rowForm);
会得到一个nil值,导致值无法正确恢复,因为_.findWhere
是一个异步方法。所以我用for
循环替换它。
function resetRow(row, rowForm) {
row.isEditing = false;
rowForm.$setPristine();
//self.tableTracker.untrack(row);
for ( let i in originalData){
if(originalData[i].id === row.id){
return originalData[i]
}
}
//return _.findWhere(originalData, function(r) {
// return r.id === row.id;
//});
}
答案 1 :(得分:2)
您正在注射sum
而不是NgTableParams
- 请参阅工作:fixed example
ngTableParams