2017-06-08 4 views
0

Ich habe ein HTML-Snippet, das ich jetzt viel duplizieren muss, was mich zu meiner Frage bringt, da ich das HTML-Snippet in eine Direktive machen möchte, die wiederverwendet werden kann. Ich möchte das Snippet unten in eine Direktive umwandeln.Erstellen einer dynamischen Winkeldirektive

Was ich möchte, ist eine Direktive, die es mir erlaubt, eine String-Eigenschaft an das OrderBy-Feld zu übergeben, die es dynamisch machen würde. so etwas wie <my-directive sort = 'Username'></my-directive> Ich habe vm.orderBy = '' in meinem Hauptcontroller initialisiert.

+1

Was haben Sie bisher versucht? Welche Version von angularjs verwendest du? Vielleicht besser, [Komponente] (https://docs.angularjs.org/guide/component) anstelle von Direktive für diesen Zweck zu verwenden? Haben Sie versucht, [Docs] (https://docs.angularjs.org/guide/directive#template-expanding-directive) zu untersuchen? Es gibt viele Beispiele, wie Vorlagen mit Anweisungen/Komponenten verwendet werden können. SO ist keine Ressource für ein freies Code-Schreiben (aber Sie bitten nur darum, eine Direktive zu schreiben), also sollten Sie zuerst eine minimale Recherche machen und weitere Informationen bereitstellen, bevor Sie das fragen. –

+0

Ich sehe nicht einmal ein Fragezeichen in Ihrer "Frage". –

+0

@ Stanislav, wie Sie wahrscheinlich sehen können, beantwortete ich meine eigene Frage auf einen zweiten Blick. Ich brauche keine Lektion darüber, wie SO funktioniert Ich bin seit einer guten Minute hier. Und nur als Randnotiz ist SO nichts für Leute, die auf eine Powertrip gehen wollen. Es gibt bessere Möglichkeiten, Ihren Standpunkt zu vermitteln und keine Annahmen zu treffen, von denen Sie sich nicht sicher sind. Vielen Dank . – lacoder

Antwort

2
angular.module('app_name', []).directive('myDirective', myDirective); 

myDirective.$inject = ["$scope"]; // dependecny injection 

function myDirective($scope) { 
    return { 
     restrict: 'E', 
     templateUrl: 'mydir.tmpl.html', 
     scope: { 
      sort: "@" 
     } 
    } 
} 

mydir.tmpl.html

<a href="#" ng-click="vm.orderBy=sort; reverseSort = !reverseSort"> 
      User Name 
      <span ng-show="vm.orderBy == sort"> 
       <span ng-show="!reverseSort"> 
        <i class="fa fa-sort-alpha-asc"></i> 
       </span> 
       <span ng-show="reverseSort"> 
        <i class="fa fa-sort-alpha-desc"></i> 
       </span> 
      </span> 
    </a> 

verwenden Dann

<my-directive sort = 'Username'></my-directive>

0

ich in der Lage war, das alles nach sortieren.

.directive("myDirective", function() { 

     return { 
      scope:{prop:'@'}, 
      templateUrl:'/templates/Sorter.html' 

     } 

    }); 

und die html so.

<my-directive prop="UserName"></my-directive> 
Verwandte Themen