Tôi đang sử dụng UI-Select 0.8.4 và có tập dữ liệu lớn. Sau đó, tôi đang sử dụng giao diện người dùng-Chọn để hiển thị giá trị thuộc tính trong menu thả xuống bên cạnh tập dữ liệu. Tôi đang sử dụng nó cho các bộ lọc. Vì vậy, khi chọn từ menu thả xuống, sẽ lọc kết quả.ng lặp lại liên tục được kích hoạt khi di chuột
Mỗi khi tôi di chuột qua một số mục trong menu thả xuống, nó luôn kích hoạt bộ lọc ng-lặp lại.
Điều này làm chậm ứng dụng của tôi vì tôi đang làm việc với một bộ lớn trong ng-lặp lại.
Tại sao điều này?
GIF: http://i.imgur.com/cStlXzy.gif
Plunker (giao diện điều khiển mở và xem cho chính mình): http://plnkr.co/edit/OxiutZ8t4IX1bOxiOTgo?p=preview
HTML:
<h3>Age list</h3>
<p>Selected: {{age.selected}}</p>
<ui-select ng-model="age.selected" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select a person">{{$select.selected}}</ui-select-match>
<ui-select-choices repeat="age in ageArray | filter: $select.search">
<div ng-bind="age | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
JavaScript:
$scope.theFilter = function(item) {
console.log(item);
return item;
};
$scope.ageArray = [];
$scope.$watch('people', function(item) {
for(var i = 0; i < item.length; i++) {
$scope.ageArray.push(item[i].age);
}
});
$scope.people = [
{ name: 'Adam', email: '[email protected]', age: 10 },
{ name: 'Amalie', email: '[email protected]', age: 12 },
{ name: 'Wladimir', email: '[email protected]', age: 30 },
{ name: 'Samantha', email: '[email protected]', age: 31 },
{ name: 'Estefanía', email: 'estefaní[email protected]', age: 16 },
{ name: 'Natasha', email: '[email protected]', age: 54 },
{ name: 'Nicole', email: '[email protected]', age: 43 },
{ name: 'Adrian', email: '[email protected]', age: 21 }
];
Chỉnh sửa: Tôi thậm chí đã cố lọc các giá trị thuộc tính ra khỏi "mảng tập dữ liệu" và sử dụng trong trình đơn thả xuống, nhưng nó không hoạt động.
Chỉnh sửa 2: Nếu bạn nghĩ rằng chiếc đồng hồ đã được kích hoạt này, tôi lấy ra chiếc đồng hồ và đây vẫn là một vấn đề: http://plnkr.co/edit/oD3Tt3vfjtOjADMnemW1?p=preview
Sửa 3: Vẫn chưa tìm thấy một giải pháp cho nên đây Tôi bị kẹt với chosen. Tôi created an issue nhưng chưa nhận được phản hồi nào. Hãy upvote vấn đề nếu bạn muốn điều này cố định.
Cảm ơn bạn, nhưng bộ lọc này tôi đang sử dụng là rất phức tạp và bao gồm nhiều ng-mô hình dưới $ scope.filters. * - Tôi nghĩ rằng đó là bloat để thêm một chiếc đồng hồ cho mỗi một, thay vì có nó trong ng-lặp lại. Câu hỏi là, tuy nhiên, là ng-mouseenter cần thiết? Liệu nó có cần cháy khi di chuột không, không chỉ cần nhấp chuột? Cá nhân tôi nghĩ đây là một lỗ hổng trong thư viện. – Gaui
Đồng ý, phần tồi tệ nhất là, tôi nghĩ rằng mục đích duy nhất của mouseenter là áp dụng một lớp "hoạt động" ... quá xấu này kết thúc giết hiệu suất #cssplease – SteamDev
Có thể đề nghị xóa ng-mouseenter khỏi khuôn mẫu trong mã lib . – SteamDev