2013-07-20 2 views
7

Sto provando a creare due direttive. La prima direttiva aggiunge altre direttive angolari predefinite (ng-click e ng-class) all'elemento e poi le compila in modo che funzionino.Modello di direttiva angolareJs con ng-transclude non compilabile

La seconda direttiva sostituisce un elemento per un modello che contiene la prima direttiva. Io uso ng-transclude per portare il contenuto dell'elemento sul modello.

Il problema è che una volta si aggiunge il modello dalla direttiva 2 della prima direttiva cerca di compilare e getta una traballante:

"TypeError: undefined non è una funzione"

direttiva 1 funziona bene quando ng -transclude non è presente nel modello. Ho creato un Plunk per dimostrarlo: http://plnkr.co/edit/RdtjIy5XKOsqvh5VnwMr

Qualcuno è in grado di dare una mano e indicare dove sbaglio?

Grazie, Sam

+2

Come regola generale, per avere un errore più chiaro durante lo sviluppo, utilizzare le versioni non compresse delle librerie. Nel tuo caso, l'errore è '' 'Errore: $ transclude non è una funzione''' nella' '' ngTranscludeDirective'''. – Blackhole

risposta

1

Dopo ulteriori tentativi ed errori ho trovato una soluzione e, per quanto ne so, non ci sono effetti collaterali.

Ho semplicemente rimosso l'attributo ng-transclude dalla seconda direttiva. Ho un Plunk aggiornato qui: http://plnkr.co/edit/9QXkqzzyUy9VvMYC6fO6