Verwenden Sie den eckigen compileProvider außerhalb des Konfigurationsblocks

Delikatesse

Ich versuche, Direktiven im laufenden Betrieb zu erstellen, eigentlich habe ich das erreicht, aber die Nähte sind ziemlich hackig.

Dies war mein erster Ansatz:

function create(myDir) {
   angular.module("app").directive(myDir.name, function() {
   return {
     template:myDir.template
   };
  });
}

Es hat nicht funktioniert, da Sie nach dem Start der Anwendung keine Anweisungen registrieren können.

basierend auf diesem Beitrag: http://weblogs.thinktecture.com/pawel/2014/07/angularjs-dynamic-directives.html

Ich habe herausgefunden, dass ich compileProvider verwenden kann, um die Arbeit zu erledigen, aber da compileProvider außerhalb des Konfigurationsblocks nicht verfügbar ist, müssen Sie es löschen, also habe ich Folgendes getan:

var provider = {};
angular.module("app",[]);        

angular.module('app')
.config(function ($compileProvider) {
    //It feels hacky to me too.
    angular.copy($compileProvider, provider);
 });
....

function create(myDir) {
    provider.directive.apply(null, [myDir.name, function () { 
        return { template: myDir.template } }]);
    render(myDir); //This render a new instance of my new directive
}

Überraschenderweise hat es funktioniert. Aber ich kann nicht das Gefühl , dass sein Hacking den compileProvider , weil ich es bin nicht in der Art und Weise war es wohl zu sein, ich würde wirklich gerne wissen , ob es möglich , das verwenden compileProvider richtig , nachdem die Anwendung gestartet wird.

Es wäre Flask

Es gibt eine Liste von Abhängigkeiten, die in configBlöcke eingefügt werden können (diese sind integriert $provide, $injectorund alle Dienstanbieter), und eine Liste von Abhängigkeiten, die in andere Bereiche eingefügt werden können (Dienstinstanzen und gute alte $injector). Wie Sie sehen, constantmüssen Sie lediglich die Abhängigkeit zu beiden Listen hinzufügen .

Ein gängiges Rezept für die Verwendung von Anbietern außerhalb configist

app.config(function ($provide, $compileProvider) {
  $provide.constant('$compileProvider', $compileProvider);
});

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Verwenden Sie Requisiten außerhalb des Renderns

Asp.Net Core: Verwenden Sie den Speichercache außerhalb des Controllers

IndexError: Listen Sie den Index außerhalb des zulässigen Bereichs auf, indem Sie verschachtelte for-Schleifen verwenden

Verwenden Sie den Datenspeicher außerhalb von App Engine (Python)?

Flutter – Führen Sie Funktionen von außerhalb des Widgets aus, die den Controller im Widget verwenden

Verwenden Sie die Winkelkonstante außerhalb des Winkels

Verwenden Sie Daten außerhalb des Ajax-Erfolgsaufrufs

Verwenden Sie den Ausdruck als ng-Klasse in eckigen js

Holen Sie sich den aktuellen Benutzer außerhalb des Controllers

Zünden Sie den Speicherverbrauch außerhalb des Heapspeichers

Geben Sie den Controller außerhalb des Namespace in Rails 6 an

Holen Sie sich den aktuellen Cache außerhalb des Diagramms

Reagieren Sie auf den nativen Websocket außerhalb des Zugriffs

So zeigen Sie den Ergebniswert außerhalb des Achsenfelds an

So beheben Sie den Listenlistenindex außerhalb des Bereichs

Definieren Sie den Decorator-Parameter außerhalb des Modulbereichs

So beheben Sie den Fehler "Index außerhalb des Bereichs"

Aufruf des AngleJS-Konfigurationsblocks

Verwenden des Batteriemanagers in eckigen js

Wie kann ich den Namen des Vorlagenparameters außerhalb der Klasse verwenden?

Verwenden des Werts, den any_of für eine Rückgabe außerhalb von Lambda verwendet

Kann ich eine Struktur innerhalb des Pakets erstellen, um sie außerhalb des Hauptprogramms zu verwenden?

So verwenden Sie den Wert eines Pfobjekts außerhalb der Abfrage

Verwenden Sie eine Zeichenfolge außerhalb der if- und else-Anweisung, um den Zeichenfolgenwert festzulegen

Zeichnen Sie Token und ihre Position auf, um sie außerhalb des Frontends zu verwenden

Verwenden Sie den Zweig "loop.length" innerhalb einer Schleife und verwenden Sie ihn dann außerhalb dieser Schleife

Setzen Sie den Status des React Context Providers programmgesteuert von außerhalb des Baums

So aktualisieren Sie den Status des Jetpack-Schiebereglers außerhalb des Schiebereglers

Blenden Sie den DIV aus, wenn Sie auf eine Stelle außerhalb des angegebenen DIV klicken

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv