2016-04-12 4 views
0

Ich benutze die gleichen divs aus meiner Sicht, aber innerhalb divs ändern sich.So möchte ich es in einer Direktive machen. Was ist der Weg dafür? Beispiel;AngularJS Wrapper Html

<div id="firstDiv"> 
    <div id="secondDiv"> 
    <div id="thirdDiv"> 
     <label....> 
    </div> 
    </div> 
</div> 

<div id="firstDiv"> 
    <div id="secondDiv"> 
    <div id="thirdDiv"> 
     <select....> 
    </div> 
    </div> 
</div> 

<div id="firstDiv"> 
    <div id="secondDiv"> 
    <div id="thirdDiv"> 
     <textArea....> 
    </div> 
    </div> 
</div> 

Also ich möchte diesen Teil als eine Richtlinie machen;

<div id="firstDiv"> 
     <div id="secondDiv"> 
     <div id="thirdDiv"> 
     </div> 
     </div> 
    </div> 

Können Sie helfen?

+0

Richtlinien nur dann verwendet werden, wenn Sie eine ähnliche Struktur haben mit ähnlichen Modellen, aber jedes kann sich unabhängig ändern, wie zum Beispiel eine Klasse. Das Modell von jedem wird in der Direktive gleich sein, aber es könnte oder könnte nicht die Werte anderer ändern. Was Sie fragen, erscheint in diesem Szenario vage. – Deadpool

+0

Suchen Sie nach ng-transclude? –

+0

Ja, ich weiß, ng-transclude ist dafür. Aber weiß nicht, wie man es für geschachtelte divs verwendet. – Egomen

Antwort

0

verwenden:

<my-wrapper> 
    Your content here 
</my-wrapper> 

Und Skript (AKTUALISIERT: html Datei laden statt Inline HTML):

module.directive('myWrapper', function ($http, $compile) { 
    var linker = function (scope, element, attrs) { 

      $http.get('wrapper.html').success(function (data) { 
      element.replaceWith($compile(data)(scope)); 
      }); 

    }; 

    return { 
     restrict: 'E', 
     link: linker 
    }; 
}); 

JSFiddle

+0

Danke nochmal. Was soll ich tun, wenn ich wrapper.html anstatt HTML-Codes in Direktive schreiben will? – Egomen