如何在ng-repeat中等待所有项目加载,然后为每个项目渲染图表

迈克·劳斯(Mike Rouse)

ng-repeat用来在页面上显示报告项目的负载。每个项目都有大量的数字,因此我们希望为每个项目显示一个小图表。

我已经设置了一个指令以在每个项目中呈现图表并将数据传递给该指令。但是,在呈现图表时,我依靠一个按钮来强制进行更新:

App.controller('ScoringPolarCtrl', ["$scope", function($scope){
     $scope.forceUpdate = function () {
        console.log("Attempting to render chart ID: " + itemId);
        var ctx = document.getElementById(itemId).getContext("2d");
        $scope.scoreChart = new Chart(ctx)
        $scope.scoreChart.PolarArea($scope.scoreChartData,
        $scope.itemScoreChartOptions);
     };
}]);

这行得通,但是我想做的就是以某种方式不依赖forceUpdate()函数就可以绘制图表

所有项目均使用来从Web服务中拉下,$http因此它们需要几秒钟的时间才能显示在页面上,因此元素实际上可以在页面chart.js上使用。

我尝试玩angular.element(document).ready()无济于事。还有什么其他方法可以强制控制器等到所有项目都首先出现之后再渲染图表?

锡尼罗

您可以$watch从控制器放置一个以您的完成中$scope的名字命名您的项目,请考虑以下示例yourItems$http.get().then()

.controller('ScoringPolarCtrl', ['$scope', function($scope) {
    $scope.$watch('yourItems', function(newVal, oldVal) {
        if(newVal !== oldVal) {
            // render charts
        }
    });
}]);

您还可以$scope在控制器上定义一个函数,并在$http回调中从指令调用。无论是否隔离$scope这看起来可能都不同,但这是基本思想

// -- directive
$http.get('/foo').then(function(results) {
    scope.renderCharts(results); // -- async complete
});

// -- controller
$scope.renderCharts = function(results) {
    // render charts -- this is called once you receive your $http response
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ng-repeat中等待所有项目加载,然后为每个项目呈现图表

来自分类Dev

在ng-repeat内的所有项目中构建图表

来自分类Dev

如何在ng-repeat中访问和使用每个项目的索引

来自分类Dev

如何在ng-repeat中访问和使用每个项目的索引

来自分类Dev

如何向用户询问项目数量,然后为每个项目分配一个编号?

来自分类Dev

如何在ng-repeat中进行ng-repeat?

来自分类Dev

如何在ng-repeat期间呈现{{}}?

来自分类Dev

如何在ng-repeat中使用ng-if?

来自分类Dev

如何在ng-if中传递ng-repeat变量?

来自分类Dev

如何在ng-repeat中获取所有ng-model的值

来自分类Dev

我如何在angularJs中创建一个custome指令来渲染ng-repeat的某些项目

来自分类Dev

如何在ng-options中按属性过滤项目?

来自分类Dev

如何在Angular中修复ng构建项目

来自分类Dev

如何在ng-repeat中显示数组的特定字母项目?

来自分类Dev

如何在ng-repeat中的指令中获得点击的项目

来自分类Dev

从顶部删除项目时如何在AngularJS中保留ng-repeat的滚动位置

来自分类Dev

如何在ng-repeat中的指令中获得点击的项目

来自分类Dev

如何在ng-repeat中显示接下来的15个项目?

来自分类Dev

如何在被包含的模板中获取ng-repeat项目?

来自分类Dev

如何在 angularjs 中使用 ng-repeat 访问带方括号的项目

来自分类Dev

如何在 angularjs 中使用 ng-repeat 时显示特定项目内的数据?

来自分类Dev

如何强制SmartTable加载所有项目?

来自分类Dev

检查 ng-repeat 上的所有项目

来自分类Dev

你如何在 ng-template 中渲染 ContentChildren 元素?

来自分类Dev

如何在ng-repeat中跳过$索引

来自分类Dev

AngularJS:如何在ng-repeat中使用$索引

来自分类Dev

如何在嵌套的ng-repeat指令中显示数据

来自分类Dev

angularjs:$ index如何在ng-repeat中工作?

来自分类Dev

如何在ng-repeat中正确执行功能

Related 相关文章

  1. 1

    如何在ng-repeat中等待所有项目加载,然后为每个项目呈现图表

  2. 2

    在ng-repeat内的所有项目中构建图表

  3. 3

    如何在ng-repeat中访问和使用每个项目的索引

  4. 4

    如何在ng-repeat中访问和使用每个项目的索引

  5. 5

    如何向用户询问项目数量,然后为每个项目分配一个编号?

  6. 6

    如何在ng-repeat中进行ng-repeat?

  7. 7

    如何在ng-repeat期间呈现{{}}?

  8. 8

    如何在ng-repeat中使用ng-if?

  9. 9

    如何在ng-if中传递ng-repeat变量?

  10. 10

    如何在ng-repeat中获取所有ng-model的值

  11. 11

    我如何在angularJs中创建一个custome指令来渲染ng-repeat的某些项目

  12. 12

    如何在ng-options中按属性过滤项目?

  13. 13

    如何在Angular中修复ng构建项目

  14. 14

    如何在ng-repeat中显示数组的特定字母项目?

  15. 15

    如何在ng-repeat中的指令中获得点击的项目

  16. 16

    从顶部删除项目时如何在AngularJS中保留ng-repeat的滚动位置

  17. 17

    如何在ng-repeat中的指令中获得点击的项目

  18. 18

    如何在ng-repeat中显示接下来的15个项目?

  19. 19

    如何在被包含的模板中获取ng-repeat项目?

  20. 20

    如何在 angularjs 中使用 ng-repeat 访问带方括号的项目

  21. 21

    如何在 angularjs 中使用 ng-repeat 时显示特定项目内的数据?

  22. 22

    如何强制SmartTable加载所有项目?

  23. 23

    检查 ng-repeat 上的所有项目

  24. 24

    你如何在 ng-template 中渲染 ContentChildren 元素?

  25. 25

    如何在ng-repeat中跳过$索引

  26. 26

    AngularJS:如何在ng-repeat中使用$索引

  27. 27

    如何在嵌套的ng-repeat指令中显示数据

  28. 28

    angularjs:$ index如何在ng-repeat中工作?

  29. 29

    如何在ng-repeat中正确执行功能

热门标签

归档