我们在celltemplates上使用textbox,而不是使用editableCellTemplate。
http://plnkr.co/edit/M8Do1p?p=preview
<input class="grid_textbox text-center"
ng-blur="grid.appScope.quantityChanged(row.entity)"
ng-model="MODEL_COL_FIELD" style="width:80%"/>
我们通过在文本框中捕获ng-blur来识别更改。但是,我们注意到当用户滚动时文本框不在视图中时,它不会在正确的文本框上触发ng-blur。
在plnkr中重现
有没有办法解决此问题或解决方法以获取已编辑的行?
更新: 我已经尝试过Guranjan的解决方案并且它有效,但另一个问题出现了。我不确定这是否应该是另一个问题,但它仍然与滚动和模糊有关。
复制
这是Guranjan的尝试者。 http://plnkr.co/edit/RWM2y7NLC7821c9vQDO6?p=preview
答案 0 :(得分:2)
这是因为ui-grid
重用元素。解决问题的一种方法是,将当前行的值存储在focus
上,并在blur
上使用该值。例如,在您的应用范围中创建变量:
$scope.currentValue = {};
然后你可以在输入焦点上更新它:
ng-focus="grid.appScope.currentValue = row.entity"
然后您可以使用$scope.currentValue
做任何您需要做的事情。