2014-10-30 5 views
7

Ich versuche, ein UI-Select in eine benutzerdefinierte Anweisung zu wickeln. (https://github.com/angular-ui/ui-select)AngularJS Wrapping einer UI-Select in einer benutzerdefinierten Anweisung

this.adminv2.directive('eventSelect', function() { 
    return { 
     restrict: 'E', 
     replace: true, 
     scope: { 
     ngModel: '=', 
     placeholder: '=' 
     }, 
     controller: function($scope, $http) { 
     return $scope.refreshEvents = function(searchTerm) { 
      return $http.get('/events/autocomplete', { 
      params: { 
       term: searchTerm 
      } 
      }).then(function(response) { 
      return $scope.events = response.data; 
      }); 
     }; 
     }, 
     template: "<div>{{ngModel}}\n <ui-select ng-model=\"ngModel\"\n    theme=\"bootstrap\"\n    ng-disabled=\"disabled\"\n    reset-search-input=\"false\">\n <ui-select-match placeholder=\"Enter an event\">{{$select.selected.name}}</ui-select-match>\n <ui-select-choices repeat=\"event in events track by $index\"\n    refresh=\"refreshEvents($select.search)\"\n    refresh-delay=\"0\">\n  <span ng-bind-html=\"event.name | highlight: $select.search\"></span>\n  <i class=\"icon-uniF111 fg type-{{raceType}} pull-right\" ng-repeat='raceType in event.racetypes'></i>\n  <br>\n  {{event.dates}} <i class='pull-right'>{{event.location}}</i>\n </ui-select-choices>\n </ui-select>\n</div>" 
    }; 
    }); 

Die ausgewählten Werke richtig, aber die Bindung mit ng-Modell funktioniert nicht. Ich kann das Modell nicht einstellen oder lesen. Ich verstehe es nicht, da es funktioniert, wenn ich eine einfache Vorlage als solche verwenden

<div><input ng-model="ngModel"></div> 

Gibt es etwas Besonderes zu tun, weil ich eine Richtlinie in der Richtlinie wickeln?

Antwort

12

schaffte ich es, indem der ng-Modell in der Vorlage als

ng-model="$parent.ngModel" 
+3

Vielen Dank, die Bindung Arbeit zu machen, hatte ich meinen Kopf gegen dieses Problem und Ihre Antwort gemacht worden schlagen es auch für mich zu arbeiten. Würdest du zufällig wissen, warum das funktioniert? – forgivenson

+0

Danke, Danke, Danke! – Wlada

Verwandte Themen