>웹 프론트엔드 >JS 튜토리얼 >AngularJS에서 ng-repeat 렌더링 청취와 관련된 문제

AngularJS에서 ng-repeat 렌더링 청취와 관련된 문제

亚连
亚连원래의
2018-06-11 17:00:361522검색

이 글에서는 AngularJS가 ng-repeat 렌더링 완료를 모니터링하는 두 가지 방법을 주로 소개하고, 모니터링 기능을 구현하기 위한 커스텀 명령어와 브로드캐스트 이벤트를 기반으로 AngularJS의 관련 운영 기술을 분석하여 도움이 필요한 친구들이 참고할 수 있도록 하겠습니다. 이 기사의 예제

AngularJS가 ng-repeat 렌더링 완료를 모니터링하는 두 가지 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

ng-repeat 렌더링 완료를 모니터링하는 방법에는 두 가지가 있습니다.

1. 가장 실용적인 방법:

<ul class="pprt_content">
    <li ng-repeat="src in imageHotList track by $index" ng-click=&#39;goGoodsDet(src.goodsId,src.merchId)&#39; on-finish-render-filters="completeRepeat">
      <img ng-src="{{productUrl}}{{src.imageName}}">
    </li>
</ul>

해당 스코프 컨트롤러:

$scope.completeRepeate= function(){
alert(&#39;1&#39;)
}

Custom Instruction directive :

var app = angular.moduler(&#39;myApp&#39;,[]);
app.directive(&#39;onFinishRenderFilters&#39;, [&#39;$timeout&#39;, function ($timeout) {
    return {
      restrict: &#39;A&#39;,
      link: function(scope,element,attr) {
        if (scope.$last === true) {
          var finishFunc=scope.$parent[attr.onFinishRenderFilters];
          if(finishFunc)
          {
            finishFunc();
          }
        }
      }
    };
}])

2. 방송 이벤트 사용

/*
* Controller文件中的代码
* Setup general page controller
*/
MetronicApp.controller(&#39;simpleManageController&#39;, [&#39;$rootScope&#39;,
&#39;$scope&#39;, &#39;settings&#39;,&#39;$http&#39;, function($rootScope, $scope, settings,$http) {
  $scope.$on(&#39;ngRepeatFinished&#39;, function (ngRepeatFinishedEvent) {
    //下面是在table render完成后执行的js
    FormEditable.init();
    Metronic.stopPageLoading();
    $(".simpleTab").show();
  });
});
MetronicApp.directive(&#39;onFinishRenderFilters&#39;, function ($timeout) {
  return {
    restrict: &#39;A&#39;,
    link: function(scope,element,attr) {
      if (scope.$last === true) {
        $timeout(function() {
          scope.$emit(&#39;ngRepeatFinished&#39;);
        });
      }
    }
  };
});

HTML

<!--HTML页面的代码,添加标签onFinishRenderFilters(格式有变):on-finish-render-filters-->
 <tr style="display: none" class="simpleTab" ng-repeat="simpleProduct in simpleProducts"
   on-finish-render-filters>
     <td>
       {{simpleProduct.productNo}}
     </td>
</tr>

위 내용은 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

vue에서 전역 프롬프트 상자 구성 요소를 사용하는 방법은 무엇입니까?

Angular4에서 ElementRef 애플리케이션을 사용하는 방법

vue에서 cli 요청 프록시 및 프로젝트 패키징 문제를 사용하는 방법

vue-cli에서 webpack 템플릿을 사용하여 프로젝트 구성 및 패키징 경로 문제 해결

Vue의 버스 글로벌 이벤트 센터(자세한 튜토리얼)

위 내용은 AngularJS에서 ng-repeat 렌더링 청취와 관련된 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.