2016-08-14 2 views
0

이 지시문을 가지고 있으며 링크 기능보다 위쪽으로 스크롤하면 함수가 호출됩니다. 링크 기능에서 배열의 4 개 항목을 연결할 것입니다. 그러나보기의 영향은 없습니다. 배열의 전체 항목이 여전히 표시됩니다. 따라서 내 질문에 내가 할 수있는 splices arrayentries 브라우저보기에서 제거하려면 무엇입니까?지시어의 속성 변경 어레이로 AngularJS 지시문

(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); 
      } 
     }); 
     } 
    } 
})(); 

지시어의 사용법은 다음과 같이이다 : 당신이 지침에서 바인드 변수를 수정하면

<div data-as-scroll-top data-chat-messages-of-user="vm.chatMessagesOfUser"> 
</div> 
+0

문제가있는 Plnkr을 만들었지 만 (http://plnkr.co/edit/fc2it2ZN7Bjxs9EJRJB1) 내가 무엇을하려고하는지 몰랐습니다. 너의 반복은 언제가? 사용자가 목록 컨테이너를 스크롤하기 시작할 때 목록을 연결하려고합니까? 그렇다면 그 목적은 무엇입니까? – mcranston18

+0

ng-repeat는 브라우저보기에 목록을 표시하며 사용자가 배열의 일부 항목보다 맨 위에 스크롤하면 삭제해야합니다. 따라서 ng-repeat 전에 항목을 삭제하지 마십시오. 고마워요 – quma

+0

plnkr의 HTML이 앱의 HTML과 일치하도록 위의 plnkr을 편집 할 수 있습니까? 나는 당신이 당신의 목록에서 반복하고있는 곳을 아직도 분명하지 않다. – mcranston18

답변

1

, 당신은 그것을 업데이트 할 필요가 각도 알려야합니다. $apply()으로이 작업을 수행 할 수 있습니다.

(function() { 
'use strict'; 

angular 
    .module('myProject.common') 
    .directive('asScrollTop', asScrollTop); 

function asScrollTop() { 
    var directive = { 
     restrict: 'A', 
     scope: { 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); 
       scope.$apply(); 
      } 
     }); 
     } 
    } 
})(); 

또한 당신이 지시 2 웨이 바인딩 된 범위 변수를 할당 할 때 같은 이름의 경우, 당신은 = 후 변수 이름을 필요는 없습니다.

+0

대답을 많이 주셔서 감사합니다 Logged – quma

관련 문제