私はこれについて何日も頭を悩ませてきましたが、理解できないようです....
私のルートは次のようになります。
$stateProvider.state({
name: 'core.portfolio',
url: '/portfolio',
controller: 'portfolioController',
controllerAs: 'vm',
templateUrl: 'app/portfolio/partials/base.html',
deepStateRedirect: true,
sticky: true,
resolve: {
portfolioPrepService: function (portfolioService) {
return portfolioService.getPortfolio();
},
}
}).state({
name: 'core.portfolio.company',
url: '/1/:companyId',
resolve: {
companyPrepService: companyPrepService
},
views: {
'company': {
controller: 'CompanyController',
controllerAs: 'vm',
templateUrl: 'app/portfolio/company/company.tmpl.html'
}
},
sticky: true,
deepStateRedirect: true
}
);
そして私のサービスは次のようになります:
function companyService($http, API_CONFIG) {
var service = {};
service = {
getCompany: getCompany
};
function getCompany(id) {
return $http({
method: 'GET',
url: API_CONFIG.url + 'companies/' + id + '/?embedded={"round":1}',
cache: false
})
}
return service;
}
CompanyController で API 呼び出しを行うと
companyService.getCompany(companyId)
、サービスは古いオブジェクトを返します。サーバー ログを見ると、REST 呼び出しが行われていません。
ページを更新すると、(PrepService に従って) API 呼び出しが再度行われますが、CompanyController でトリガーされると、サーバーに REST がヒットせずに古いデータが返されます。
なぜこれが起こっているのか誰にも分かりますか?それは解決と関係がありますか、それとも粘着状態にあるのでしょうか?