AngularJs 在 forEach 中承诺
AngularJs promise in forEach
我有从服务器获取数据的方法。
我在 foreach 中使用它,之后需要将他绑定到 $scope 变量。
像这样:
var qualityMix = [];
var engagementMix = [];
angular.forEach(versions, function (versions) {
qualityMix.push(qualityScoreByTimeWithAppVerPromise(versions.version));
engagementMix.push(engagementByTimeWithAppVerPromise(versions.version));
});
$scope.qualityScoreByTimeMix = function () {
return $timeout(function () {
return $q.all(qualityMix).then(function (data) {
return {series: data};
});
});
};
$scope.engagementTimeMix = function () {
return $q.all(engagementMix).then(function (data) {
return {series: data};
});
};
qualityScoreByTimeWithAppVerPromise和engagementByTimeWithAppVerPromise是从服务器获取数据的函数。然后 $scope.engagementTimeMix 和 $scope.qualityScoreByTimeMix 需要 return 有承诺的功能(没问题)。
此代码有效但并非总是有效,有时我会捕获异常 $scope.xxx 不是函数.
我不知道如何修复它。请帮帮我。非常感谢!
UPD
它是构建图表的代码。
<div class="section">
<highchart id="mix_quality_score_by_time" type="area" data="qualityScoreByTimeMix"
chart-style="qualityScoreMixChartStyle"></highchart>
</div>
我在其他页面调用的指令,如下所示:
<compare-versions id="compare_versions_panel" start-day="timeFilter.startDay()"></compare-versions>
$scope.xxx 不是函数
我的意思是我在 chrome 控制台中捕获的消息是什么
$scope.engagementTimeMix 和 $scope.qualityScoreByTimeMix 它不是函数
当你已经有值时,你可以使用 ng-if 并绘制图形
示例:
<div class="section" ng-if="qualityScoreByTimeMix">
<highchart id="mix_quality_score_by_time" type="area" data="qualityScoreByTimeMix" chart-style="qualityScoreMixChartStyle"></highchart>
</div>
我有从服务器获取数据的方法。 我在 foreach 中使用它,之后需要将他绑定到 $scope 变量。 像这样:
var qualityMix = [];
var engagementMix = [];
angular.forEach(versions, function (versions) {
qualityMix.push(qualityScoreByTimeWithAppVerPromise(versions.version));
engagementMix.push(engagementByTimeWithAppVerPromise(versions.version));
});
$scope.qualityScoreByTimeMix = function () {
return $timeout(function () {
return $q.all(qualityMix).then(function (data) {
return {series: data};
});
});
};
$scope.engagementTimeMix = function () {
return $q.all(engagementMix).then(function (data) {
return {series: data};
});
};
qualityScoreByTimeWithAppVerPromise和engagementByTimeWithAppVerPromise是从服务器获取数据的函数。然后 $scope.engagementTimeMix 和 $scope.qualityScoreByTimeMix 需要 return 有承诺的功能(没问题)。
此代码有效但并非总是有效,有时我会捕获异常 $scope.xxx 不是函数.
我不知道如何修复它。请帮帮我。非常感谢!
UPD 它是构建图表的代码。
<div class="section">
<highchart id="mix_quality_score_by_time" type="area" data="qualityScoreByTimeMix"
chart-style="qualityScoreMixChartStyle"></highchart>
</div>
我在其他页面调用的指令,如下所示:
<compare-versions id="compare_versions_panel" start-day="timeFilter.startDay()"></compare-versions>
$scope.xxx 不是函数 我的意思是我在 chrome 控制台中捕获的消息是什么 $scope.engagementTimeMix 和 $scope.qualityScoreByTimeMix 它不是函数
当你已经有值时,你可以使用 ng-if 并绘制图形
示例:
<div class="section" ng-if="qualityScoreByTimeMix">
<highchart id="mix_quality_score_by_time" type="area" data="qualityScoreByTimeMix" chart-style="qualityScoreMixChartStyle"></highchart>
</div>