Tengo una etiqueta personalizada en una routeProvider
plantilla que requiere una directive
plantilla. El version
atributo será poblado por el ámbito que luego requiere la plantilla correcta.
<hymn ver="before-{{ week }}-{{ day }}"></hymn>
Existen múltiples versiones del himno en función de qué semana y día es. Estaba anticipando usar la directiva para llenar la .html
porción correcta . La variable no está siendo leída por el templateUrl
.
emanuel.directive('hymn', function() {
var contentUrl;
return {
restrict: 'E',
link: function(scope, element, attrs) {
// concatenating the directory to the ver attr to select the correct excerpt for the day
contentUrl = 'content/excerpts/hymn-' + attrs.ver + '.html';
},
// passing in contentUrl variable
templateUrl: contentUrl
}
});
Hay varios archivos en el directorio extractos que están etiquetados before-1-monday.html
, before-2-tuesday.html
, ...
angularjs
angularjs-directive
Alen Giliana
fuente
fuente
Respuestas:
Puedes usar la
ng-include
directiva.Intenta algo como esto:
UPD para ver el
ver
atributofuente
ver
cambios de atributos y volver a entregar la directiva?<hymn ...>
debería funcionar bien. ¿O tal vez es hora de construir un prototipo en jsfilddle ?ve take a look at your site, and changed [JSFiddle](http://jsfiddle.net/JQgG5/6/). All you need is
alcance: {} `en la declaración de directiva - aislamiento del alcance . También te recomiendo que uses la última versión de angular.<script type="text/ng-template" id="...">
- es una alternativa local a las páginas htmlPara que pueda proporcionar templateUrl a través de marcado
Ahora solo tenga cuidado de que la propiedad contentUrl se complete con la ruta generada dinámicamente.
fuente
once per $compile phase
. En otras palabras, si lo usang-repeat
con su directiva y desea establecer una plantilla individual basada enng-repeat
el contexto específico del elemento, no funcionará, porque la$compile
fase recorre su directiva una vez antes de queng-repeat
suceda lo real . Entonces, en ese sentido, se llama una vez ...Gracias a @pgregory, pude resolver mi problema usando esta directiva para la edición en línea
fuente
No necesita una directiva personalizada aquí. Solo use el atributo ng-include src. Está compilado para que pueda poner código dentro. Vea plunker con solución para su problema.
fuente
Tuve el mismo problema y lo resolví de una manera ligeramente diferente a los demás. Estoy usando angular 1.4.4.
En mi caso, tengo una plantilla de shell que crea un panel CSS Bootstrap:
Quiero incluir plantillas de cuerpo de panel según la ruta.
Luego tengo la siguiente plantilla incluida cuando la ruta es
#/students
:La plantilla panel-body.html de la siguiente manera:
Datos de muestra en el caso de que alguien quiera probar:
fuente
Tengo un ejemplo sobre esto.
fuente