Javascript 如何使用$scope变量在celltemplate内的ui网格中使用ng show

Javascript 如何使用$scope变量在celltemplate内的ui网格中使用ng show,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我试图显示一个基于范围变量的元素。我似乎无法让它工作。既然$scope.hi存在,我希望“Active”这个词出现。这是我的密码: var app = angular.module('app', ['ngTouch', 'ui.grid']); app.controller('MainCtrl', function ($scope, $timeout) { $scope.hi = true; $scope.gridOpts = { columnDefs:

我试图显示一个基于范围变量的元素。我似乎无法让它工作。既然$scope.hi存在,我希望“Active”这个词出现。这是我的密码:

var app = angular.module('app', ['ngTouch', 'ui.grid']);

app.controller('MainCtrl', function ($scope, $timeout) {
  $scope.hi = true;
  $scope.gridOpts = {        
        columnDefs: [
          { name:'name', field: 'name' },
          { name:'isActive', field: 'isActive'},
          { name:'template',cellTemplate:'<div><a ng-show="hi">Active</a><a ng-hide={{row.entity.isActive=="N"}}>Deactive</a></div>'}
        ]
  };

  $scope.waiting = "Waiting...";
  $timeout(function () {
    $scope.gridOpts.data = [{ name: 'Bob' ,isActive:'Y'}];
  }, 3000)
  .then(function() {
    $timeout( function() {
      $scope.gridOpts.data = [{ name: 'John',isActive:'N' }];
    }, 3000);
    $scope.waiting = "Waiting again...";
  })
});
var-app=angular.module('app',['ngTouch','ui.grid']);
app.controller('MainCtrl',函数($scope,$timeout){
$scope.hi=true;
$scope.gridOpts={
columnDefs:[
{name:'name',字段:'name'},
{name:'isActive',字段:'isActive'},

{name:'template',cellTemplate:'

ui网格使用隔离范围创建其网格,这意味着该模板后面的范围不是您在其中定义模板的范围

但是,该独立作用域包含对该原始作用域的引用,您可以通过
grid.appScope
访问该原始作用域

如果您将
hi
更改为
grid.appScope.hi
,您的示例将正常工作

见:

应用范围: 对应用程序范围(ui网格元素的父范围)的引用。在ui网格控制器中分配

使用gridOptions.appScopeProvider可以用任何引用覆盖$scope.$parent的默认分配


在ui网格RC15上可能存在重复的I,但这不起作用。一旦更新到RC22,此解决方案就起作用了。