template - AngularJS ng-include no incluye vista a menos que se pase en $ scope
ng-template angularjs (2)
¿Es incorrecto suponer que ngInclude
puede tomar un camino sin procesar? Sigo tratando de configurar mi ngInclude
siguiente manera:
<div ng-include src="views/header.html"></div>
Esto no funciona, pero si hago algo así, funciona.
// HeaderController
app.controller(''HeaderCtrl'', function($scope){
$scope.templates = {[
template: { url: ''views/header.html'' }
]};
$scope.template = $scope.templates[0].template;
});
En mi index.html
<div ng-controller="HeaderCtrl">
<div ng-include src="template.url"></div>
</div>
¿ ngInclude
solo los valores fuera del alcance? Si es así, ¿por qué es así y no una recta del parcial html?
ng-include
, como otras directivas ( ng-class
, ng-src
...) evalúa una expresión angular del alcance. Sin comillas ( ''''
), buscará una variable del alcance.
Tenga en cuenta que no tiene que especificar el atributo src
.
<div ng-include src="''views/header.html''"></div>
Se puede reescribir a: (eso es más simple)
<div ng-include="''views/header.html''"></div>
También puede usar ng-include como un elemento :
<ng-include src="''views/header.html''"></ng-include>
ng-include
acepta una expresión. Si desea especificar la URL explícita directamente allí, debe dar una cadena.
<div ng-include src="''page.html''"></div>