2014-10-30 22 views
7

Tôi đang cố gắng bọc một ui-chọn trong một chỉ thị tùy chỉnh. (https://github.com/angular-ui/ui-select)AngularJS Gói một ui-chọn trong chỉ thị tùy chỉnh

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>" 
    }; 
    }); 

Lựa chọn hoạt động đúng cách, nhưng ràng buộc với mô hình ng không hoạt động. Tôi không thể thiết lập mô hình hoặc đọc nó. Tôi không nhận được nó vì nó hoạt động khi tôi sử dụng một mẫu đơn giản như

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

Có một cái gì đó đặc biệt để làm vì tôi quấn một chỉ thị trong chỉ thị?

Trả lời

12

tôi quản lý để thực hiện các công việc ràng buộc bằng cách thiết lập các ng-mô hình trong mẫu như

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

Cảm ơn rất nhiều, tôi đã bị đập đầu tôi chống lại vấn đề này và câu trả lời của bạn làm cho nó làm việc cho tôi quá. Bạn có biết tại sao nó hoạt động không? – forgivenson

+0

Cảm ơn bạn, Cảm ơn bạn, Cảm ơn bạn! – Wlada

Các vấn đề liên quan