2016-12-06 5 views
0

Wie kann ich 'Scope' Argument außerhalb der Richtlinie übergeben? ich brauche es in einer anderen Komponente verwenden ..Wie kann ich 'Scope' Argument außerhalb der Richtlinie übergeben

mein Code:

(function() { 
angular.module('dmv.shared.components'). 
    directive('doImportPackage', ['Package', function (Package) { 
     return { 
      restrict: 'A', 
      scope: { 
       onStart: '<', 
       onFinish: '<', 
       onError: '<'}, 
link: function (scope, element, attributes) { 

    } 

tnx !!

+0

Direktive Übernimmt automatisch das übergeordnete '$ scope'. – Nirus

+0

Verwenden Sie '$ scope. $ Parent', um auf den übergeordneten Bereich zuzugreifen – azad

Antwort

1

Sie können dies über einen Controller tun. Da AngularJS im 2-Wege-Datenbindungsprinzip arbeitet, werden diese Variablen, die Sie zugewiesen haben, bereits von der Stelle aktualisiert, auf die Sie verwiesen haben, und Sie können sie auch mit anderen Anweisungen verwenden. Zum Beispiel gehe ich davon aus, dass Sie Ihre Richtlinie wie folgt verwenden:

<do-import-package 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError"> 
</do-import-package> 

Sie haben folgende entsprechenden Variablen in myCtrl controllor:

this.onStart = some value; 
this.onFinish = some value; 
this.onErrod = some value; 

Unter normalen Bedingungen können Sie andere Richtlinie der Attribute auf diese Werte binden und Sie werden in zwei Richtungen aktualisiert. Wenn Sie beispielsweise die folgende Direktive verwenden, sollten beide Direktiven mit denselben Werten aktualisiert werden.

<other-directive 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError"> 
</other-directive> 
+0

danke! Jetzt habe ich eine Anforderung, um sie an eine Komponente oben zu übergeben. ist es möglich? –

+0

Was ist eine Komponente oben? Ich würde gerne helfen, wenn Sie ein Beispiel wie die obigen Codes geben können. –

+0

Ich habe 2 Komponenten, "tabsContainer" und "importTab". Wie Sie bereits erklärt haben, kann ich Argumente von der Direktive "importPackage" nach draußen in die "importTab" Komponente übergeben. Jetzt muss ich sie einen Schritt weiter oben zu "tabsContainer" übergeben (im Allgemeinen sieht die Struktur der App wie folgt aus: "tabsContainer" -Komponenten ruft "importTab" -Kompetenzen, die "importPackage" -Direktive verwenden). –

Verwandte Themen