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

时间:2017-06-02 09:24:17

标签: javascript angularjs angular-ui-grid

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

更新后我可以刷新数据,但是celltemplate:条件没有被触发。我使用下面的方法刷新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

1 个答案:

答案 0 :(得分:0)

通过改变让傻瓜工作 ng-show={{row.entity.status==\'Active\'}}

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

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

这样的表达式

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