2015-03-04 34 views
6

voglio ottenere un valore direttamente da una direttiva attributo:angolare valore di direttiva attributo

<form cronos-dataset="People as p"> 
    Form Content 
</form> 

Nei miei JS ho provato:

app.directive('cronosDataset',[function() { 
    return { 
    restrict: 'A', 
    controller: 'CronosGenericDatasetController', 
    scope: { 
     "cronos-dataset" : '@' 
    } 
    }; 
}]) 

.controller("CronosGenericDatasetController",['$scope', function($scope) { 
    alert($scope["cronos-dataset"]); 
}]); 

voglio avvisare "People as p" stringa ma ho undefined. È la strada giusta o dovrei seguire un approccio diverso?

+1

è necessario usa '$ timeout (function() {alert ($ scope [" cronos-dataset "]);})' controller interno –

+0

Puoi crare un plnkr/violino? Il tuo codice dovrebbe funzionare bene. http://plnkr.co/edit/2gdUSFoWXUTJAONqGLqn?p=preview –

risposta

7

Si suppone di avere camelCase nella dichiarazione ambito

app.directive('cronosDataset',[function() { 
    return { 
    restrict: 'A', 
    controller: 'CronosGenericDatasetController', 
    scope: { 
     cronosDataset : '@' 
    } 
    }; 
}]) 

Ecco una demo per vedere diverse varianti http://plnkr.co/edit/G6BiGgs4pzNqLW2sSMt7?p=preview

+0

Buono. Grazie. –

+0

Wow! Questo ha fatto il trucco! Grazie mille! – nanndoj

+0

Nessun problema! – HarryH

4

Fai una funzione di collegamento, invece:

app.directive('cronosDataset',[function() { 
    return { 
    scope: {}, 
    restrict: 'A', 
    link: function (scope, elem, attrs) { 
     alert(attrs.cronosDataset); 
    } 
+0

ha voluto chiamare all'interno del controller non nella funzione di collegamento? –

+0

Quegli avvisi! Grazie, ma ho bisogno di chiamarlo all'interno di un controller! – nanndoj

Problemi correlati