Ich habe diese Direktive und wenn ich nach oben scrollen als die Link-Funktion aufgerufen wird - das funktioniert gut. In der Link-Funktion werde ich 4 Einträge des Arrays spleißen - aber dies hat keinen Einfluss auf die Ansicht - es werden immer noch die ganzen Einträge des Arrays angezeigt. Daher meine Frage wäre, was ich tun kann, um die splices arrayentries aus der Browseransicht zu entfernen?AngularJS Direktive als Attribut - ändern Array in Direktive
(function() {
'use strict';
angular
.module('myProject.common')
.directive('asScrollTop', asScrollTop);
function asScrollTop() {
var directive = {
restrict: 'A',
scope: { chatMessagesOfUser: '=chatMessagesOfUser' },
link: link
};
return directive;
////////////
function link(scope, element, attr) {
console.log(element);
element.on('scroll', function() {
if(element[0].scrollTop <= 0) {
scope.chatMessagesOfUser.splice(1, 4);
}
});
}
}
})();
Die Verwendung der Richtlinie ist es wie folgt aus:
<div data-as-scroll-top data-chat-messages-of-user="vm.chatMessagesOfUser">
</div>
Ich machte eine Plnrkr mit Ihrem Problem, aber ich erkannte (http://plnkr.co/edit/fc2it2ZN7Bjxs9EJRJB1) Ich weiß nicht, was Sie versuchen zu tun. Wann geht deine ng-Wiederholung? Versuchen Sie, die Liste zu splitten, wenn der Benutzer den Listencontainer scrollt? Wenn ja, wozu dient das? – mcranston18
ng-repeat zeigt die Liste in der Browser-Ansicht an, und wenn der Benutzer oben scrollt, sollten einige Elemente im Array gelöscht werden. Der Gegenstand sollte also nicht vor dem ng-repeat gelöscht werden. Vielen Dank – quma
können Sie die PLNKR oben bearbeiten, so dass die HTML in der PLNKR entspricht der HTML Ihrer App? Ich bin immer noch nicht klar, wo Sie auf Ihrer Liste iterieren. – mcranston18