Javascript 安格拉斯在弗雷奇的承诺
我有从服务器获取数据的方法。 我在foreach中使用它,之后需要将它绑定到$scope变量。 像这样:Javascript 安格拉斯在弗雷奇的承诺,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我有从服务器获取数据的方法。 我在foreach中使用它,之后需要将它绑定到$scope变量。 像这样: var qualityMix = []; var engagementMix = []; angular.forEach(versions, function (versions) { qualityMix.push(qualityScoreByTimeWithAppVerPromise(versions.version)); engagementMix.push(engag
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需要有承诺的返回函数(可以)
这段代码工作正常,但并不总是如此,有时我捕获异常$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并在已经有值时绘制图形
例如:
我们可以看看您的控制器以及您实际调用这些方法的位置吗?确切地说,$scope.xxx是什么?我没看到有人在这里打电话,只是为打电话做准备。我看不出您在哪里调用$scope.qualtyScoreByTimeMix(不需要$timeout)或$scope.engagementtimemix我更新了我的问题
<div class="section" ng-if="qualityScoreByTimeMix">
<highchart id="mix_quality_score_by_time" type="area" data="qualityScoreByTimeMix" chart-style="qualityScoreMixChartStyle"></highchart>
</div>