Angular Direktive empfangendes Objekt als Attribut mit Typescript

8

Ich entwickle mit Angular 1.5.8 und Typescript Ich habe eine Richtlinie, die im Rahmen einer anderen Richtlinie (und natürlich eines anderen Verantwortlichen) verwendet wird. Sagen wir Richtlinie1, Controller1 und Richtlinie2, Controller2. Da der Controller1 bereits über die Benutzerinformationen verfügt, möchte ich diese Benutzerinformationen über die Direktive2 an den Controller2 weiterleiten, um zu verhindern, dass die Informationen erneut aus dem Backend abgerufen werden. Ich bin mir nicht sicher, ob das möglich ist, aber es wäre schön, wenn das der Fall wäre:)

Unten ist der Code, um meine Erklärung zu helfen:

Richtlinie1 HTML:

%Vor%

loggedUser wird im Controller1-Konstruktor durch einen Aufruf an das Backend geladen.

Directive2 und Directive2Ctrl Typescript-Code:

%Vor%

Ich konnte keine Möglichkeit finden, das Benutzerobjekt an die Directive2Ctrl zu übergeben (nicht einmal sicher, ob das möglich ist).

    
gmesorio 05.10.2016, 19:34
quelle

5 Antworten

0

Um zu tun, was ich an erster Stelle gefragt habe, muss der Bereich korrekt verwendet werden.

Hier ist eine andere Frage, die schön erklärt wird, die den Bereich richtig verwendet:

Wie kann ich meinen Controller mit TypeScript definieren?

    
gmesorio 22.12.2016, 12:49
quelle
3

Verwenden Sie die Eigenschaft "scope" anstelle der Eigenschaft "bindToController", und ersetzen Sie Ihr "@" durch "=". Dann verwende ich eine Schnittstelle für meinen spezifischen Bereich, um Autovervollständigung zu erhalten.

%Vor%

Entfernen Sie in Ihrem HTML-Code die geschweiften Klammern.

%Vor%     
Nicolas Law-Dune 21.10.2016 12:46
quelle
2

Wenn Sie Daten zwischen verschiedenen Standorten in Ihrer Anwendung freigeben möchten, fügen Sie sie einfach in einen Dienst ein und verwenden Sie DI, wo immer Sie die Daten benötigen.

Das heißt, holen Sie die Daten, speichern Sie sie in einem Dienst und verwenden Sie DI, um die Daten an verschiedenen Orten verfügbar zu machen. Es ist nicht notwendig, Daten durch Bindungen über mehrere Ebenen zu übertragen, was die Verwendung eines Dienstes erheblich vereinfacht.

%Vor% %Vor% %Vor%
    
dinony 17.10.2016 18:49
quelle
2

Es sollte so sein. Aber wenn es immer noch nicht für Sie funktioniert, können Sie einen einfachen Plünderer erstellen und ich werde es dort reparieren. Prost!

%Vor%

'

%Vor%     
S.Klechkovski 21.10.2016 17:07
quelle
0

Entschuldigung, ich frage mich, ob Sie weiterhin scope = {}

setzen müssen     
Maccurt 05.10.2016 19:42
quelle