我想鏈接的承諾,提取'dtaDashboard'使用從獲取儀表板的值,執行第二個電話。由於某種原因,承諾鏈似乎不能在「解決方案」內部發揮作用。爲什麼不?爲什麼我不能在「解決」路線中鏈接承諾?
state('uploadServiceTxData', {
url: '/dashboard/:id/upload',
templateUrl: 'views/dashboard-upload.html',
controller: 'DashboardUploadController',
resolve: {
dtaRefData: function(RefDataService) {
return RefDataService.getRefData();
},
dtaDashboard: function(DashboardService, $stateParams) {
return DashboardService.get({ id: $stateParams.id });
},
dtaUploads: function(TransactionSummaryUploadService, dtaDashboard, $q) {
return dtaDashboard.then(function(dashboard) { return TransactionSummaryUploadService.findByExample({ service: dashboard.service.name }) });
}
}
});
上面的代碼部分的詳細信息。 DashboardSerivce和TransactionSummaryUploadService上的函數使用$ resource實現。所以「get」和「findByExample」使用$ resource來進行REST調用。
我還沒有試圖複製你的問題,但你爲什麼不結合'dtaDashboard'和'dtaUploads'到一個解決方案?在承諾鏈的最後,您可以返回一個既包含儀表板又包含您需要的其他內容的對象。 – JoseM
我認爲這是我會做的。請注意,問題是「爲什麼」這不起作用。 – user2800708
如果說它不起作用,那你的意思是什麼?是否有錯誤被拋出?它從來沒有真正解決?你是否得到了比你期望的不同類型的對象? – JoseM