私は写真家が写真をアップロードするために使用できるアプリケーションに取り組んでいます。フロントエンドはAngularJSであり、RESTfull APIバックエンドがあります。RESTリソースのAngularJS ui-router解決
いくつかの問題と、ui-routerがngRouterより優れているため、$ routeproviderをui-routerの$ stateProviderに変更することにしました。
しかし、私の解決策はもう働きません(私はそれが壊れていたと思っていましたが、自分の状況に対する解決策を見つけることができません)。だからここ
は、元の$ routeproviderコードは次のとおりです。
.when('/photographer', {
templateUrl : '/static/partials/photographer/photographer_dash.html',
controller : 'photographerController',
resolve: {
photogPrepService: function (PhotogService) {
return PhotogService.ownPhotos();
}
}
})
PhotogServiceは、以下の$リソースオブジェクトを持つ$リソースサービスです:私は、その後どうなるのコントローラで
return $resource(apiHost, {}, {
'ownPhotos': {
url: apiHost + '/photographer_own_photos/',
method: 'GET',
interceptor: ResponseInterceptor
}
});
(解決のためにphotogPrepServiceが注入されている):
var promise = photogPrepService;
promise.then(
function (data) {
$scope.ownPhotos = data.data.photos;
});
これはすべてうまくいきました。私は範囲内の写真を手に入れました。
$stateProvider.state('photographer',
{
url: '/photographer',
templateUrl: '/static/partials/photographer/photographer_dash.html',
controller: 'photographerController',
resolve: {
photogPrepService: function (PhotogService) {
return PhotogService.ownPhotos();
}
}
:
は、しかし、それは動作しませんし、私はそれが働くように見えることはできません...ドキュメント(https://github.com/angular-ui/ui-router/wiki#resolve)によると
は以下の通り動作するはずUI-ルータと言ったようにResource(value)
私は何とか目を取得するように見えることはできません。解決がコントローラに注入し、私は応答を印刷するにconsole.log()を使用されている場合しかし、私は次の取得します私の値(JSONレスポンス{"photos":...})はコントローラに注入されました。ここでstackoverflowで提案された様々なソリューションを試してみました。ガイドとUI-routerのAPIを読んでいましたが、何がうまくいかないのですか...誰かが私を正しい方向に導くことができれば幸いです。
ありがとう!私はあなたが以下のコードを使用することができると思う
あなたの答えをありがとう!同じコントローラを使用する複数の状態が存在する可能性があるため、私は解決策があると考えた理由があります。これらの州のすべてがownPhotos呼び出しを行う必要はありません。 コントローラを使用するたびにownPhotosコールを実行しませんか? – nobody