Ich versuche eine Direktive innerhalb einer anderen Direktive zu rendern (nicht sicher, ob der Repeater in der Vorlage funktioniert), und es scheint nur als Text ausgegeben zu werden Direktive (Bottom-Code hier: http://plnkr.co/edit/IRsNK9)Rendern Sie eine Direktive innerhalb einer anderen Direktive (innerhalb der Repeater Vorlage)
Irgendwelche Ideen, wie ich es tatsächlich richtig rendern kann, my-dir-eins, meine-dir-zwei, meine-dir-drei Direktiven im Repeater?
index.html
<!doctype html>
<html ng-app="plunker" >
<head>
<meta charset="utf-8">
<title>AngularJS Plunker</title>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.js"></script>
<script src="app.js"></script>
<script id="partials/addressform.html" type="text/ng-template">
partial of type {{type}}<br>
</script>
</head>
<body>
<div container></div>
<br /><br /><br />
<b>Below is just to test the directives are actually usable outside the repeater</b>
<div my-dir-one></div>
<div my-dir-two></div>
<div my-dir-three></div>
</body>
</html>
app.js
var app = angular.module('plunker', []);
app.directive('container', function() {
return {
restrict: 'A',
scope: {},
replace: true,
template: '<div class="views">' +
' <div class="view" ng-repeat="view in views">' +
' <div {{view.dir}}>{{view.dir}}</div>' +
' </div>' +
'</div>',
link: function (scope, elm) {
scope.views = [
{ dir: 'my-dir-one' },
{ dir: 'my-dir-two' },
{ dir: 'my-dir-three' }
];
}
}
});
app.directive('myDirOne', function() {
return {
restrict: 'A',
scope: {},
replace: true,
template: '<div>This is directive one.</div>'
}
});
app.directive('myDirTwo', function() {
return {
restrict: 'A',
scope: {},
replace: true,
template: '<div>This is directive two.</div>'
}
});
app.directive('myDirThree', function() {
return {
restrict: 'A',
scope: {},
replace: true,
template: '<div>This is directive three.</div>'
}
});
Ich habe keine Nebenwirkungen dieser Lösung gefunden. Das heißt, ich fand heraus, dass wenn Sie alle Vorlagen (mit dem $ templateCache-Dienst) vorab zwischenspeichern, dann können Sie wegkommen, ohne ein Wrapper-Element zu erstellen. – romiem