gefeuert Ich verwende UI-Select 0.8.4 und habe einen großen Datensatz. Dann verwende ich UI-Select, um Eigenschaftswerte in einem Dropdown neben dem Datensatz anzuzeigen. Ich benutze das für Filter. Wenn Sie also aus dem Dropdown-Menü wählen, werden die Ergebnisse gefiltert.ng-repeat kontinuierlich auf Hover
Jedes Mal, wenn ich über einen Eintrag im Dropdown-Menü schwebe, wird immer der ng-repeat-Filter ausgelöst.
Dies ist meiner Anwendung nachhinkt, weil ich mit einem großen Satz in der ng-Wiederholung arbeite.
Warum ist das?
GIF: http://i.imgur.com/cStlXzy.gif
Plunker (offene Konsole und sehen Sie selbst): 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 }
];
Bearbeiten: Ich habe sogar versucht, die Eigenschaftswerte aus dem "Datensatzarray" zu filtern und das im Dropdown verwenden, aber es funktioniert nicht.
Edit 2: Wenn Sie denken, dass die Uhr diese wurde Auslösung entfernte ich die Uhr, und das ist immer noch ein Problem: http://plnkr.co/edit/oD3Tt3vfjtOjADMnemW1?p=preview
bearbeiten 3: Noch keine Lösung für dieses so gefunden haben Ich stecke mit chosen fest. Ich habe created an issue, aber habe keine Antwort bekommen. Bitte aktualisieren Sie das Problem, wenn Sie dies behoben möchten.
Vielen Dank, aber diese Filter ich benutze ist sehr komplex und besteht aus vielen ng-Modelle unter $ scope.filters. * - Ich denke, es ist aufgeblasen, eine Uhr für jede einzelne hinzuzufügen, anstatt sie in der ng-Wiederholung zu haben. Die Frage ist jedoch, ist das ng-Mausenter notwendig? Muss es beim Schweben ausgelöst werden, nicht nur klicken? Ich persönlich denke, das ist ein Fehler in der Bibliothek. – Gaui
Einverstanden, schlimmster Teil ist, ich denke, der einzige Zweck des Mouseenders ist es, eine "aktive" Klasse anzuwenden ... schade, dass dies endet Leistung zu töten #cssplease – SteamDev
Könnte vorschlagen, entfernen Sie die ng-Mouseenter aus dem Templating im lib-Code . – SteamDev