Dopo aver studiato diversi progetti e aver letto tutta la documentazione che riesco a gestire, ho riscontrato un problema con il modo in cui includere le direttive nella mia app. L'applicazione è strutturata come le seguenti:Angular - Direttive e utilizzo del modulo
app.js - solo la parte superiore
angular.module('ngDashboard', ['ngCookies','ngResource','ngDashboard.filters', 'ngDashboard.services', 'ngDashboard.directives'])
Tutti i moduli funzionano bene, tranne (si tratta di un app riscritto da un esempio) per le direttive che don' t lavoro a tutti:
directives.js - il seguente non funziona e non esegue la direttiva sulla vista:
angular.module('ngDashboard.directives', []).
directive('funkyElement', function() {
return {
restrict: 'E',
transclude: true,
scope: 'isolate',
template: '<div>gonna parse this: {{orig}} <br/>... and get this: {{obj}}</div>',
//templateUrl: 'template.html',
compile:function (element, attr, transclusionFunc) {
return function (scope, iterStartElement, attr) {
var origElem = transclusionFunc(scope);
var content = origElem.text();
scope.orig = content;
scope.obj = my_custom_parsing(content);
};
}
};
});
il seguente nello stesso file directives.js fa funzionare correttamente e la direttiva esegue:
angular.module('ng').directive('funkyElement', function() {
return {
restrict: 'E',
transclude: true,
scope: 'isolate',
template: '<div>gonna parse this: {{orig}} <br/>... and get this: {{obj}}</div>',
//templateUrl: 'template.html',
compile:function (element, attr, transclusionFunc) {
return function (scope, iterStartElement, attr) {
var origElem = transclusionFunc(scope);
var content = origElem.text();
scope.orig = content;
scope.obj = my_custom_parsing(content);
};
}
};
});
L'HTML è semplice:
<funky-element>
Parse me... come ooooon! Just parse meee!
</funky-element>
La mia domanda è, qual è il modo corretto per includere una serie di direttive e, forse, il motivo per cui il primo esempio (utilizzando il ngDashboard.services) non funziona.
Potresti inviare un plunker con il codice live? È quasi impossibile dire cosa sta succedendo senza vedere altro codice. Basandomi su ciò che posso vedere finora presumo che tu non stia inizializzando la tua app usando 'ng-app =" ngDashboard "' o se le cose si sono mischiate quando hai incluso i file. Ancora una volta, il codice live mostrerà chiaramente tutto questo. –
Inserirò del codice dal vivo, ma l'intera app funziona bene, tutti i servizi, i controller, l'unica cosa che non funziona correttamente è la direttiva. – lucuma
È stato memorizzato nella cache il file app.js o non ho premuto Salva dopo aver aggiunto la dipendenza direttiva. Dopo averci giocato per così tanto tempo, dubito che non sia stato salvato, ma sono aperto a questa possibilità. – lucuma