2016-11-10 9 views
0

EDIT Ich war auf der Suche nach etwas wie this. Kombiniert mit Vorschlägen zu diesem Post verwende ich jetzt eine Bindung kombiniert mit einem Ausdruck.AngularJS Passing Scope über Datenbindung

<my-component data="{{data}}">{{data}}</my-component> 

Ist es möglich, einen Steuerungsbereich über Datenbindung zu übergeben? Meine Verarbeitungssteuerung den Umfang wie diese erhalten soll:

bindings: { 
    scope: '<' 
} 

Ich mag eine Richtlinie mit den Daten aus der ersten Steuerung zu übergeben, und diese Informationen sollten in meiner neuen Komponente .. erste Steuerung hat Daten gezeigt werden, und ich möchte es in der Vorlage wie folgt übergeben:

<my-component>{{scope.data}}</my-component> 
+0

Ich bin mir nicht sicher, was genau Sie tun möchten, b ut wenn ich mich richtig widerstehe, willst du Daten zwischen zwei Controllern senden, oder? – trichetriche

+0

Wenn Sie universelle Daten verwenden, sollten diese sich in einem * service * befinden, der ein Singleton ist, der im Kontext der App auf denselben Datenstatus verweist. Mit richtig entwickeltem Code sind Controller nicht in der Lage, Daten miteinander zu "bedienen". Sobald Sie den Service an Ort und Stelle haben, injizieren Sie ihn lediglich in den Client-Controller, der Zugriff auf die * gleichen * Daten benötigt. – MoMo

Antwort

1

Warum möchten Sie den gesamten Umfang des Controllers übergeben?

bindings: { 
     someVariable: '=' 
} 

Und dann in den HTML-Code des Controllers würden Sie die Komponente aufrufen:

Normalerweise würden Sie ein Objekt auf die Komponente von der ersten Steuerung mit so etwas wie unten passieren

<my-component some-variable="scope.someVariable"></my-component> 

scope.someVariable wäre ein Objekt, das zu dem ersten Controller gehört und jetzt haben Sie Zugriff auf diese Daten innerhalb Ihrer Komponente