私は例えば、優先順位に基づいて、いくつかのグラフをロードする、AngularJSとd3jsで構築されたチャートジェネレータプラグインを持っている:AngularJSのロードスコープを遅延させるにはどうすればよいですか?
3つの優先レベルと6つのチャートがあります。
- まず優先順位が:チャート#1 &チャート#5
- 第優先:チャート#3
- 第優先:チャート#2、チャート#4 &チャート#6
第2優先度チャートは、すべての第1優先度チャートが完全に読み込まれる前に表示することはできません。
スコープで遅延読み込みを使用するにはどうすればよいですか?ここで
は私のコードは次のとおりです。
コントローラ
ngCharts.controller('WgListMixed', function ($rootScope, $scope, $http, $sce, $timeout, $compile, SharedDateScopes) {
SharedDateScopes.getWidgetMixed(2).then(function(data_promised) {
$rootScope.wgMixLists = data_promised;
angular.forEach($rootScope.wgMixLists, function(widget) {
var scope_name = widget.wg_id;
var scope_name_v = widget.wg_id+"_v";
$rootScope[scope_name] = widget.data[0];
$rootScope[scope_name_v] = widget.data;
});
});
});
ngCharts.service('SharedDateScopes', function($rootScope, $http, $q) {
return {
getWidgetMixed: function(dateRanges,stages) {
var dataRange = <%=$data_range%>;
if(typeof dateRanges !=="undefined") {
var dataRange = dateRanges;
}
var date_range_attr = "&date_range="+dataRange+"";
if (typeof codename == "undefined") {
var date_range_attr = "";
}
var defer = $q.defer();
$http.get('<%=[byt_control_root]%>/byt_reporting_widgets_manager?stage=mixed'+date_range_attr+'&widgets=<%=$bayt_mixed_widget%>').success(function (datas) {
defer.resolve(datas);
});
return defer.promise;
}
};
});
githubで完全な例が見つかります: https://github.com/islamzatary/LegoCharts/ –