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>''