2015-05-11 14 views
5

Tôi có một phương thức khởi động và, bên trong nó, tôi có một ui-chọn để gắn thẻ. Dưới đây là ví dụ của tôi:vùng có thể nhấp của ui-chọn bên trong là 10px một kiểu khởi động

<div class="modal modal-invite"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
      <span aria-hidden="true">&times;</span> 
     </button> 
     </div> 
     <div class="modal-body"> 
     <ui-select multiple tagging tagging-label="" ng-model="email_list" theme="bootstrap" ng-disabled="disabled" on-select="" on-remove="" title="Insert your friends email here." > 
      <ui-select-match placeholder="Your friends email here...">{{$item}}</ui-select-match> 
      <ui-select-choices repeat="email in email_list | filter:$select.search"> 
      {{email}} 
      </ui-select-choices> 
     </ui-select> 
     </div> 
     <div class="modal-footer"> 
     <button class="btn btn-success">Invite</button> 
     </div> 
    </div> 
    </div> 
</div> 

Vấn đề của tôi là: Khi tôi mở modal với $('modal-invite').modal('show'), kích thước của các placeholder (và vùng có thể nhấp) là 10 pixel, như thế này:

10px sized placeholder

Google Chrome inspector

Sau khi nhấp vào nó, nó sẽ có chiều rộng chính xác.
Làm cách nào để làm cho ui-chọn làm mới kích thước của nó khi phương thức mở?

+0

Bạn đã cố gắng để đưa khởi ui-chọn vào phương thức callback mở? Có vẻ như khi phương thức được mở lần đầu tiên, ui-select chưa được khởi tạo. –

+1

@DmitryS Ok, có lẽ tôi đã tìm ra giải pháp. Tôi đã thử: '$ ('modal-invite'). Phương thức ('show')' và sau đó '$ scope. $ Apply();', và điều này dường như hoạt động! – ProGM

+0

Có lẽ vì, như Dmitry đã nói, ui-chọn không được hiển thị khi trang được tải. – eHx

Trả lời

2

Cuối cùng tôi đã giải quyết việc kiểm tra các nguồn ui chọn.
Dường như ui-select tính lại kích thước đầu vào với một số $watch trên chiều rộng gốc.

Vì vậy, để làm mới nó, tôi đã làm như thế này:

$('.modal-invite').modal('show'); 
$scope.$apply(); 
+0

Tôi đang gặp vấn đề tương tự. Gọi một div có ui-select bằng cách nhấn vào một nút.

. Không chắc chắn khi nào nên gọi $ scope. $ apply() –

0

Tôi có vấn đề simular.

Tôi biết thay đổi tệp nguồn không phải là thực hành tốt và tốt hơn nên nhắm mục tiêu nó từ mã của riêng tôi - nhưng bây giờ tôi đã sửa nó bằng cách nhận xét một dòng trong mã nguồn đặt trường nhập vào 10px khi kết xuất thẻ.

Trong dòng 831 trong file select.js nguồn, nhận xét ra: ctrl.searchInput.css('width', '10px');

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