2016-12-06 2 views
0

Dies ist ein einfaches Beispiel, das ich gerade für diese Frage geschrieben habe. Ich bin neugierig, ob ich eine Direktive verwenden und ein Objekt an das Attribut der Direktive übergeben kann, alles in der Vorlage, not templateUrl. Ich würde denken, es würde so etwas funktionieren:Kann ich eine Richtlinie in der Template-Funktion verwenden?

angular.module('myModule') 
    .directive('someDirective', function() { 
    return { 
     scope: { 
     u: '=', 
     }, 
     template: '<avatar user="u"></avatar>', 
    }; 
    }); 

Antwort

0

Ja können Sie! Und es ist egal, in welcher Reihenfolge.

app.directive("directive1", function() { 
    return { 
     restrict: 'E', 
     scope: { 
      u: '@' 
     }, 
     template : "<h4>{{u}}</h4><directive2 user='{{u}}'></directive2>" 
    }; 
}); 
app.directive("directive2", function() { 
    return { 
     restrict: 'E', 
     scope: { 
      user: '@' 
     }, 
     template : "<h1>{{user}}</h1>" 
    }; 
}); 

In Aktion sehen in diesem jsfiddle

+0

Danke für die Antwort! Können Sie das Beispiel so erweitern, dass ein Attribut übergeben wird? Vorzugsweise ein Objekt – Jesse

+0

Sicher! Sieh es jetzt. – driconmax

+0

Ich habe nur eine Saite benutzt, um das Testen zu erleichtern und das Ergebnis zu sehen. Wenn Sie ein Objekt verwenden möchten, ändern Sie '@' mit '=' und ändern Sie, was Sie drucken (zum Beispiel 'u.name') – driconmax

0

Ja, es ist einfach, Ihr Zustand durchlaufen Umfang Attribute. Hier ist eine plunkr, die das Konzept demonstriert.

app = angular.module('app',[]) 
    .directive('someDirective', function() { 
    return { 
     scope: { 
     u: '=', 
     }, 
     template: '<avatar user="u"></avatar>', 
    }; 
    }).directive('avatar', function() { 
    return { 
     scope: { 
     user: '=', 
     }, 
     template: '<span>{{user.name}}</span>', 
    }; 
    }) 
Verwandte Themen