0

Ich versuche, einen Attributwert von einer Direktive durch ng-transclude an den Geltungsbereich der untergeordneten Richtlinie zu übergeben. Ich habe versucht, mit =, @, & für das Scope verbindlich, aber ich bin immer noch boggled. Ich möchte, dass die Child-Direktive das Attribut von der Parent-Direktive erbt. Jede Hilfe wäre willkommen!Wie übergebe ich einen Eltern-Direktiven-Attributwert an einen Kind-Direktive-Bereich?

ich jsfiddle hier gemacht habe ->https://jsfiddle.net/egdfLzLj/5/

Javascript

var app = angular.module('app', []); 

app.directive('parent', function() { 
    return { 
    restrict: 'E', 
    transclude: true, 
    replace: true, 
    scope: { 
     label: '@' 
    }, 
    template: '<section>' + 
      '<label>{{::label}}' + 
      '<ng-transclude></ng-transclude>' + 
      '</label>' + 
     '</section>' 
    }; 
}); 

app.directive('child', function() { 
    return { 
    restrict: 'E', 
    replace: true, 
    scope: { 
     type: '@', 
     label: '&' 
    }, 
    template: '<input ng-type="type" ng-value="::label">' 
    }; 
}); 

Html

<parent label="Parent Label"> 
    <child type="text"></child> 
</parent> 

Antwort

1

Demo: https://jsfiddle.net/egdfLzLj/2/

HTML

<parent label="Parent Label"> 
    <child type="text"></child> 
</parent> 

Richtlinie

var app = angular.module('app', []); 

app.directive('parent', function() { 
    return { 
    restrict: 'E', 
    transclude: true, 
    replace: true, 
    scope: { 
     label: '@' 
    }, 
    template: '<section>' + 
      '<label>{{::label}}' + 
      '<ng-transclude></ng-transclude>' + 
      '</label>' + 
     '</section>' 
    }; 
}) 

app.directive('child', function() { 
    return { 
    restrict: 'E', 
    replace: true, 
    link: function (scope) {scope.label = scope.$parent.label;}, 
    template: '<input type="text" value="{{ label }}">' 
    }; 
}); 
+0

Das ist nicht, was ich zu tun werde versuchen. Ich versuche zu vermeiden, dem untergeordneten Element ein Label hinzuzufügen. Ich möchte, dass das Attribut vom übergeordneten Element übernommen wird. Ich lege mir vor, was ich erwartet habe. – jemiloii

+0

Ok..got it. Plz siehe die aktualisierte Antwort. – softvar

+0

@softvar Ich habe auch versucht, den Wert von te Eltern mit dem Schlüssel require, aber es hat nicht funktioniert. Parent wurde nicht gefunden und daher fehlte der zusätzliche Parameter in der Link-Funktion. Warum? Liegt es daran, dass der Elternteil sich zusammenschließt? – Michelangelo

Verwandte Themen