首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ng-重复之后触发函数

问在ng-重复之后触发函数
EN

Stack Overflow用户
提问于 2013-11-27 13:09:49
回答 1查看 2K关注 0票数 0

我对角度很陌生,我想做一个非常基本的例子。在用ng-repeat显示了一些数据之后,我想用javascript函数来使用其中的一些数据。但是我不知道什么时候执行javascript,因为我不知道什么时候角将完成显示我的数据。

这里有一把小提琴:,我试着用函数getAssign3显示一个警告,一些数据是按角度显示的。我什么时候应该调用这个函数?

代码:

代码语言:javascript
复制
<div ng-app="Test">
    <h1>Results Table</h1>
    <div ng-controller="AssignmentCtrl">
          <span ng-repeat="assign in assignments">
             <span id="{{assign.id}}">{{assign.title}}</span>
              <br/> 
        </span>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>

更多代码:

代码语言:javascript
复制
var test = angular.module("Test", []);

function AssignmentCtrl($scope, $http, $timeout) {
    $scope.fetch = function () {
        // -- Mock server data..
        var data = [{id: 1,title: "Math 1",
                    },{id: 2, title: "Math 2",
                    }, { id: 3,title: "Math 3",
                    }];
         $scope.assignments = data;
    };
    $scope.fetch();
}

getAssign3 = function(){
    var dd = $("#3").text(); 
    alert(dd);
}
getAssign3();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 13:16:57

您必须在控制器中添加一个$on捕捉器:

代码语言:javascript
复制
$scope.$on('ngRepeatFinished'), function (ngRepeatFinishedEvent) {
      console.log "After loop";
}

App.js中的指令:

代码语言:javascript
复制
.directive('onFinishRender', function($timeout) {
    return {
      restrict: 'A',
      link: function(scope, element, attr) {
        if (scope.$last) {
          return $timeout (function() {
            scope.$emit 'ngRepeatFinished'
          });
       }
    }
})

在你看来:

代码语言:javascript
复制
on-finish-render="myFunc()"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20243427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档