2014-04-29 20 views
7

Sono nuovo su AngularJs. Sto scrivendo la mia direttiva angolare personalizzata che contiene un modello di alcuni contenuti html. Quando uso il modello con il codice seguente funziona perfettamente.La direttiva personalizzata angularJs non funziona con templateUrl

demoApp.directive('demoCarousel', function() { 
    return { 
    restrict: 'E', 
    replace:'true', 
    template: "<h1>This is from the custom directive..</h1>" 
    }; 

});

Ma quando sostituisco il modello con templateUrl che punta a un html all'interno di un partial sto ricevendo errore.

demoApp.directive('demoCarousel', function() { 
    return { 
    restrict: 'E', 
    replace:'true', 
    templateUrl: "/partials/carousel.html" 
}; 

});

L'errore javascript è qualcosa di simile:

Error: [$compile:tplrt] http://errors.angularjs.org/1.2.15/ $compile/tplrt?p0=glassCarousel&p1=%2Fpartials%2Fcarousel.html

Si prega di farmi sapere dove sto andando male e che il modo corretto di utilizzare il TemplateURL

Nota: io sto usando solo puro codice HTML all'interno il file carousel.html.

risposta

8

Il error sais: Template for directive 'glassCarousel' must have exactly one root element. /partials/carousel.html

questo significa che avete qualcosa di simile nel modello:

<div>...</div> 
<div>...</div> 

Non è consentito, si dovrebbe avere un solo elemento radice:

<div> 
    <div>...</div> 
    <div>...</div> 
</div> 
+0

Molte grazie. Questo mi ha fatto risparmiare molto tempo. – Pradeep

+0

@ user883561 siete i benvenuti :) – karaxuna

+0

+1 Un must se si utilizza un file esterno, in alternativa agli esempi di ui-bootstrap che utilizzano templateUrl che chiama il codice nel "index.html" – Sydwell

Problemi correlati