2012-09-20 9 views
120

È sbagliato assumere che ngInclude possa intraprendere un percorso raw? Continuo a cercare di impostare il mio ngInclude come segue:

<div ng-include src="views/header.html"></div> 

questo non funziona, ma se faccio qualcosa come questo funziona.

// HeaderController 
app.controller('HeaderCtrl', function($scope){ 
    $scope.templates = {[ 
    template: { url: 'views/header.html' } 
    ]}; 

    $scope.template = $scope.templates[0].template; 
}); 

Nel mio index.html

<div ng-controller="HeaderCtrl"> 
    <div ng-include src="template.url"></div> 
</div> 

Does ngInclude solo eccezione valori fuori del campo di applicazione? Se è così, perché è in questo modo e non include un diritto del partial html.

risposta

326

ng-include accetta un'espressione. Se si desidera specificare direttamente l'URL esplicito, è necessario fornire una stringa.

<div ng-include src="'page.html'"></div> 
+0

Yea solo visto quello. Gli esempi che stavo osservando stavano usando una versione precedente di angolare. – Chad

+44

Ho passato un sacco di tempo questo pomeriggio cercando di capirlo. Di * corso * deve essere una stringa. Questo rende * completo * il senso. –

+0

non funziona con ngSanitize abilitato nel modulo dell'app. Sto cercando una soluzione. – Dida

1

ng-include, come altre direttive (ng-class, ng-src ...) Valuta un'espressione angolare dall'ambito. Senza virgolette (''), cercherà una variabile dell'oscilloscopio.


Nota che non è necessario specificare l'attributo src.

<div ng-include src="'views/header.html'"></div> 

Può essere rewritted a: (che è più semplice)

<div ng-include="'views/header.html'"></div> 

è anche possibile utilizzare ng-comprendere come elemento:

<ng-include src="'views/header.html'"></ng-include> 
Problemi correlati