0

私はこれについて何日も頭を悩ませてきましたが、理解できないようです....

私のルートは次のようになります。

$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 がヒットせずに古いデータが返されます。

なぜこれが起こっているのか誰にも分かりますか?それは解決と関係がありますか、それとも粘着状態にあるのでしょうか?

4

2 に答える 2