dynamisches hinzufügen von Richtlinien in ng-repeat
Ich versuche dynamisch hinzufügen der verschiedenen Richtlinien in einer ng-repeat jedoch wird die Ausgabe nicht interpretiert wird als Richtlinien.
Ich habe ein einfaches Beispiel hier: http://plnkr.co/edit/6pREpoqvmcnJJWzhZZKq
Controller:
$scope.colors = [{name:"red"}, {name: "blue"}, {name:"yellow"}];
Richtlinie:
app.directive("red", function () {
return {
restrict: 'C',
template: "RED directive"
}
});
Html:
<ul>
<li ng-repeat="color in colors">
<span class="{{color.name}}"></span>
</li>
</ul>
Wie mache ich eckige abholen der Richtlinie angegeben in der class
ist die Ausgabe mittels ng-repeat?
- interessante Frage!
- Ich bin mir nicht sicher, das ist möglich. Sie könnte pass Farbe.Namen wie ein parameter zu einer einzigen Richtlinie, obwohl, und überprüfen Sie dann den Wert ein-und ausführen/aufrufen, den entsprechenden code von dort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist eine alte Frage, aber google hat mich hierher gebracht, und ich wusste nicht, wie die Antworten hier... Sie schien wirklich zu kompliziert für etwas, das einfach sein sollte. So habe ich diese Richtlinie:
***** NEUER INHALT *****
Hab ich da aus dieser Richtlinie allgemeiner, stehend analysiert (die typisch eckigen Wert) "Attribute" Attribut.
Für die OP ' s verwenden, Fall Sie tun könnten:
Oder verwenden Sie es als ein Attribut der Richtlinie:
***** ENDE NEUE INHALTE ******
Für den speziellen Fall, der in dieser Frage kann man nur umschreiben, dass die Richtlinie ein wenig zu machen, wenden Sie die Richtlinie auf eine Zeitspanne, die durch die Klasse, als so:
Dann können Sie diese überall, und wählen Sie eine Richtlinie, indem Sie den Namen dynamisch. Verwenden Sie es wie so:
Habe ich absichtlich gehalten diese Richtlinie einfach und unkompliziert. Sie kann (und wird vermutlich) haben es umformulieren, um Ihre Bedürfnisse anzupassen.
ich konfrontiert mit dem gleichen problem in einem meiner Projekte, und Sie sehen, wie ich dieses problem lösen auf jsfiddle
HTML:
JS:
Ich hoffe, es wird nützlich.
Ich glaube nicht, dass Sie werde in der Lage sein, um einfach ordnen Sie die Richtlinie, wie der name einer Klasse - Sie würde laufen müssen, diese durch
$compile
wieder, das wäre die überschrift auf dem Weg in Richtung Rekursion Fehler.Eine mögliche Lösung ist skizziert in: AngularJS - wie eine Richtlinie mit einer dynamischen sub-Richtlinie
Wenn es funktioniert, für Ihren Fall, Sie können Vorlagen verwenden, stattdessen: