2015-06-03 19 views
6

Tôi đang sử dụng Lưới giao diện người dùng góc trong ứng dụng của mình. Tôi đặt enableFiltering thành true trong các tùy chọn đã làm cho một số hộp bộ lọc hiển thị phía trên các cột của tôi. Điều này thật tuyệt, nhưng các bộ lọc không hoạt động chính xác như mong muốn.Bộ lọc Lưới giao diện người dùng góc chỉ áp dụng cho đầu giá trị ô

Nếu ô chứa văn bản "Tôi thích pizza" và tôi nhập "Tôi thích", hàng của ô đó được hiển thị dưới dạng đối sánh. Tôi cũng nghĩ rằng nếu tôi nhập "pizza", ô/hàng "Tôi thích pizza" sẽ hiển thị, nhưng đó không phải là trường hợp.

Làm cách nào để có bộ lọc cho phép tìm kiếm ở bất kỳ vị trí nào trong văn bản, không chỉ từ đầu?

+0

Giá trị mặc định là 'STARTS_WITH', nhưng bạn có thể thay đổi nó: https://github.com/angular-ui/ng-grid/issues/2839 –

+0

@BradBarber trông giống như điều tôi muốn, mặc dù không rõ cách sử dụng nó. Bất kỳ ý tưởng? –

+0

Trong cộtDef nơi bạn muốn sử dụng nó, bạn sẽ thêm như sau: 'filter: {condition: uiGridConstants.filter.CONTAINS}' –

Trả lời

5

Bạn có thể sử dụng filter: {condition: uiGridConstants.filter.CONTAINS} trong định nghĩa cột để cho phép cột đó để tìm kiếm bất cứ nơi nào trong văn bản.

Dưới đây là một định nghĩa cột mẫu với điều này tại chỗ:

columnDefs: [ 
    // default 
    { field: 'name', 
    filter: {condition: uiGridConstants.filter.CONTAINS} }, 
    ... 
+2

BTW, người đọc, đừng quên bao gồm 'uiGridConstants' trong tiêm phụ thuộc của bạn. –

+0

Có lợi thế gì khi viết một hàm? – azium

+1

@azium, tôi thích sử dụng bất kỳ khả năng nào được cung cấp bởi một khung công tác nếu nó có sẵn ... chúng thường thực hiện tốt hơn tôi. Trong trường hợp này, họ đã triển khai bộ lọc CONTAINS với một regex thay vì indexOf mà tôi nghĩ là nhanh hơn một chút (https://github.com/angular-ui/ng-grid/blob/master/src/js/core/services/ rowSearcher.js # L149). –

1

Bạn có thể chuyển đối tượng bộ lọc tùy chỉnh có thuộc tính condition, có thể là một chức năng mất searchTermcellValue. Sẽ hiển thị nếu hàm trả về true. Plunkr

{ field: 'name', filter: { 
    condition: function(searchTerm, cellValue) { 
     return cellValue.indexOf(searchTerm) > -1 
    } 
    }} 
+0

BTW, mặc dù tôi không nghĩ rằng đây là cách tốt nhất để hoàn thành những gì tôi đã được ban đầu sau, mã này là hữu ích cho tôi theo một cách khác sau này, vì vậy cảm ơn. –

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