J'ai une balise personnalisée dans un routeProvider
modèle qui appelle un directive
modèle. L' version
attribut sera rempli par la portée qui appelle ensuite le bon modèle.
<hymn ver="before-{{ week }}-{{ day }}"></hymn>
Il existe plusieurs versions de l'hymne en fonction de la semaine et du jour. J'avais l'intention d'utiliser la directive pour remplir la bonne .html
partie. La variable n'est pas lue par le 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
}
});
Il y a plusieurs fichiers dans le répertoire des extraits qui sont étiquetés before-1-monday.html
, before-2-tuesday.html
...
angularjs
angularjs-directive
Alen Giliana
la source
la source
Réponses:
Vous pouvez utiliser la
ng-include
directive.Essayez quelque chose comme ceci:
UPD. pour regarder l'
ver
attributla source
ver
changements d'attribut et la directive de rendu?<hymn ...>
devrait bien fonctionner. Ou peut-être qu'il est temps de construire un prototype chez jsfilddle ?ve take a look at your site, and changed [JSFiddle](http://jsfiddle.net/JQgG5/6/). All you need is
: {} `dans la déclaration de directive - isolation de la portée . Aussi, je vous recommande fortement d'utiliser la dernière version d'angular.<script type="text/ng-template" id="...">
- est une alternative locale aux pages htmlAinsi, vous pouvez fournir templateUrl via le balisage
Maintenant, veillez simplement à ce que la propriété contentUrl soit remplie avec un chemin généré dynamiquement.
la source
once per $compile phase
. En d'autres termes, si vous utilisezng-repeat
avec votre directive et que vous souhaitez définir un modèle individuel en fonctionng-repeat
du contexte d'élément spécifique , cela ne fonctionnera pas, car la$compile
phase parcourt votre directive une fois avant que la réalité neng-repeat
se produise. Donc, dans ce sens, il est appelé une fois ...Grâce à @pgregory, j'ai pu résoudre mon problème en utilisant cette directive pour l'édition en ligne
la source
Vous n'avez pas besoin de directive personnalisée ici. Utilisez simplement l' attribut ng-include src. Il est compilé pour que vous puissiez y insérer du code. Consultez plunker avec une solution à votre problème.
la source
J'ai eu le même problème et je l'ai résolu d'une manière légèrement différente des autres. J'utilise angulaire 1.4.4.
Dans mon cas, j'ai un modèle de shell qui crée un panneau CSS Bootstrap:
Je souhaite inclure des modèles de corps de panneau en fonction de l'itinéraire.
J'ai alors le modèle suivant inclus lorsque l'itinéraire est
#/students
:Le modèle panel-body.html comme suit:
Exemples de données dans le cas où quelqu'un voudrait essayer:
la source
J'ai un exemple à ce sujet.
la source