übergeben von Daten an eine Richtlinie für die ng-repeat innerhalb der Richtlinie

Ich halten, stoßen meinen Kopf auf eckig, wenn ich will eine Richtlinie, die eine Liste von Aktionen angezeigt, aber ich will es allgemein genug, um auf mehr als eine Art/Form des Objekts. Für das einfache Beispiel, lässt sagen, ich habe

<select ng-options="person.id by person in people" ng-model="selectPerson">
  <option>
     {{person.name}}
  </option>
</select>

(Beachten Sie, dass dies ist ein einfaches Beispiel, und etwas, was diese einfache würde wahrscheinlich, profitieren nicht von einer Richtlinie)

Nun will ich es in eine generische Richtlinie genannt cool-wählen Sie
Ich könnte versuchen, so etwas wie dies in meinem js

//directive coolselect.directive.js
angular.module('mycoolmodule',[]).directive('coolSelect',function(){
    return {
       restrict:'E',
       templateUrl:'js/coolselectdirective/_coolselect.html',//html from example above
       scope:{
             items:'=',
             displayProperty:'@',
             idProperty:'@',
             selectedItem:'='
       },
       link:function(scope,element){
        //do cool stuff in here
       }
   }
});

Aber dann hier, wo ich beginnen zu werfen, ein wenig in meinem Mund

//html template _coolselect.html
<select ng-model="selectedItem" ng-options="item[scope.idProperty] by item in items">
  <option>      
     {{item[scope.displayProperty]}}
   </option>
</select>

Um ehrlich zu sein ich bin nicht einmal sicher, ob das funktionieren würde in eckig. Ich habe gesehen, was für ein ui-wählen Sie mit einem äußeren Gültigkeitsbereich. Vielleicht ist der Weg zu gehen?
https://github.com/angular-ui/ui-select/blob/master/dist/select.js#L892

Aber dann denke ich, würde ich brauchen, um mit Phantasie transclude, wie ui-wählen Sie ist.
Gibt es nicht einen einfacheren Weg? Bin ich versucht zu machen, die Richtlinien zu allgemein? Ist dies nicht ein problem anderer Leute in?

BEARBEITEN:
Am Ende wäre es ideal für Sie, um so auszusehen.

<cool-select repeat="person.id by person in people" display-property="name"></cool-select>
  • Sie sollten die Richtlinie als element und verwenden Sie es als eine Klasse? Wenn Sie die restrict-E an C, Sie können es als eine Klasse.
  • Sorry der Klasse, ist nur zu zeigen, dass es eigene Stile, die diesem element zugeordnet.
  • Ich nahm die Klasse zu machen, mehr klar
Schreibe einen Kommentar