columndefs javascript angularjs angular-ui-grid

javascript - columndefs - AngularJS: ¿Cómo acceder al alcance desde la plantilla de celda ui-grid?



ui-grid columndefs (1)

¿Cómo se accede a $scope desde una plantilla de celda ui-grid? Aquí está mi código de controlador:

app.controller(''MainCtrl'', [''$scope'', function ($scope) { // i want to reference this from a cell template. $scope.world = function() { return ''world''; }; $scope.gridOptions = { data: [ { id: "item1" }, { id: "item2" } ], columnDefs: [ { field: ''id'', // world() is never called and is not displayed. cellTemplate: ''<div>{{ "hello " + world() }}</div>'' }] }; }]);

Véalo en acción aquí: http://plnkr.co/edit/WYXeQShHWKDYDs4MIZnP?p=preview

Espero que los contenidos de las celdas muestren "hola mundo", pero solo muestran "hola".


Según http://ui-grid.info/docs/#/tutorial/305_appScope , la cuadrícula tiene su propio alcance isalote, por lo que necesita usar grid.appScope para acceder al alcance de su aplicación. La solución es cambiar la plantilla de celda a:

cellTemplate: ''<div>{{ "hello " + grid.appScope.world() }}</div>''