2015-04-16 16 views
5

Tôi đang cố gắng sử dụng nút thêm bên trong các tùy chọn, nhưng vấn đề là ng-click kích hoạt nhưng tùy chọn không được chọn.Angularjs: Ui-chọn ng-click trong ui-chọn-lựa chọn

<ui-select ng-model="datactrl.newservice.selected" theme="selectize" ng-disabled="disabled" style="width: 100%;"> 
    <ui-select-match placeholder="..."> 
     <span ng-bind-html="$select.selected.name"></span>   
    </ui-select-match> 
    <ui-select-choices repeat="service in data.base_services | filter: $select.search"> 
     <span ng-bind-html="service.name | highlight: $select.search"></span> 

     <!-- HERE NOT --> 
     <a href="" class="pull-right" ng-click="setnewservice()"> 
      <i class="glyphicon glyphicon-plus-sign"></i> 
     </a>  
     <!-- ### --> 

    </ui-select-choices> 
</ui-select>        


<!-- here obviously works --> 
<a href="" class="pull-right" ng-click="setnewservice()"> 
    <i class="glyphicon glyphicon-plus-sign"></i> 
</a> 

tôi có thể gửi một số tham số cho hàm và xử lý các trường hợp này thậm chí chọn liên kết nhấp của chỉ số mục để mô hình với mất giá trị chính xác, hoặc như trong mẫu làm việc trên mang nó bên ngoài ..

nhưng làm cách nào tôi có thể xử lý đúng cách này, dừng sự kiện, chọn tùy chọn mà không gửi đối tượng hoặc một số thuộc tính của nó và sau đó thực hiện phần còn lại?

$scope.setnewservice = function ($event) { 
    $event.stopPropagation(); 
    // ?? 
} 
+0

Tôi có một thiết lập tương tự, đưa ng nhấp chuột như là một thuộc tính của chúng tôi lựa chọn-lựa chọn cả hai chọn mục và gọi phương pháp –

Trả lời

4

Sử dụng ng-change trên ui-chọn không ng-click trên ui-chọn-lựa chọn. Thay đổi này:

ng-click="setnewservice() 

tới:

ui-select ng-model="datactrl.newservice.selected" theme="selectize" ng-disabled="disabled" style="width: 100%;" ng-change="setnewservice()> 
+0

Tôi sẽ khuyên bạn nên sử dụng trên chọn vs ng-thay đổi đặc biệt là nếu bạn có một typeahead nếu không nó sẽ bắn vào mỗi ký tự gõ vào hộp chọn. – goodies4uall

+0

Chắc chắn, nếu bạn muốn sử dụng JavaScript khi một số văn bản đã được chọn. Nhưng đó không phải là những gì @daniel hỏi. Chỉ thị ngChange phù hợp hơn. Biểu thức được đánh giá ngay lập tức, không giống như sự kiện JavaScript chỉ kích hoạt vào cuối thay đổi. Điều này là cần thiết cho ui-chọn-lựa chọn để làm việc. http://embed.plnkr.co/Ufhb0IfzrTlG3XLY2ahh/ – Fergus

0

Bạn có thể thêm các thuộc tính trên chọn vào thẻ của bạn như sau:

on-select="setnewservice($item, $model)" 
Các vấn đề liên quan