Angularjs UI 更新行时网格不检查 ng-show 条件

Angularjs UI grid not checking ng-show condition when row gets updated

我正在使用 angularjs ui 网格,我的代码中有一个名为 status 的字段,用户可以在其中通过单击按钮将状态更新为 Active 或 InActive。

更新后我可以刷新数据,但是 celltemplate: condition 没有被触发。我正在使用以下方法刷新 ui 网格

$scope.gridOption.data=data;
$scope.gridOptionApi.core.refresh();

但这只是刷新我的数据,它没有检查我在 celltemplete 中添加的条件,如下所示

 {field: 'profileId', displayName: 'Change Status',cellTemplate:'<div class="text-center">
<button ng-click="grid.appScope.changeProfileStatus(COL_FIELD, \'InActive\' )" ng-show={{row.entity.status==\'Active\'}} 
class="btn-custome-warn custom-btn-xs  btn-warning"><i class="fa fa-close"></i></button><button 
ng-click="grid.appScope.changeProfileStatus(COL_FIELD, \'Active\')" ng-show={{row.entity.status==\'InActive\'}} 
class="btn btn-xs btn--small custom-btn-xs button--primary"><i class="fa fa-check"></i></button></div>'}

所以基本上我显示的是更改状态字段,如果状态处于活动状态,那么我会显示“不活动”按钮,反之亦然。

有人有什么建议吗?

这是我试图创建的 plunker 以向您展示演示,但这里的状态我现在正在手动更新以向您展示我已经 api 要求更新它,如果您看到数据正在更改,但状态更改按钮没有更改 Demo

通过更改让 plunker 工作 ng-show={{row.entity.status==\'Active\'}}

ng-show="row.entity.status==\'Active\'"

原因是 {{ }} 内的任何内容都会立即在模板内执行,因此您可以看到生成的 html 具有 ng-show="true" 但没有像

这样的表达式

ng-show="row.entity.status=='Active'"