2017-01-06 12 views
0

UIルーターの解決方法を動作させようとしていますが、この問題の解決に成功していません。明らかに、私は、コントローラと決意ブロックのtemplateUrlを持ってAngular 1.5 - Ui-Router 1.0.0-beta.3 - 'resolve @ root'のテンプレート設定がありません

$stateProvider 
    .state('root', { 
    abstract: true, 
    views: { 
     '[email protected]': { 
     template: '<div>Header</div>', 
     }, 
     '[email protected]': { 
     template: '<div>Footer</div>', 
     } 
    } 
    }) 

.state('root.home', { 
    views: { 
    '[email protected]': { 
     url: '/', 
     templateUrl: 'src/survey/survey.template.html', 
     controller: 'homeController' 
    }, 
    resolve: { 
     communityId: ['backendFactoryService', function (backendFactoryService) { 
      backendFactoryService....then(function (res) { 
       return res; 
      }) 
     }], 
     brandingId: ['backendFactoryService', function (backendFactoryService) { 
      // do stuff 
      }) 
     }], 
     community: ['backendFactoryService', function (backendFactoryService) { 
        // do stuff 
      }) 
     }], 
     branding: ['backendFactoryService', function (backendFactoryService) { 

        // do stuff 
      }) 
     }] 
    } 
    } 
}) 

私home.controller.js

(function() { 
    'use strict' 

    angular.module('someModule') 
    .controller('homeController', homeController) 

    homeController.$inject = [ 
    '$scope', 
    'branding', 
    'brandingId', 
    'community', 
    'communityId' 
    ]; 

    function homeController(
    $scope, 
    branding, 
    brandingId, 
    community, 
    communityId 
) { 
    $scope.community = community; 
    $scope.branding = branding; 
    $scope.brandingId = brandingId; 
    $scope.communityId = communityId; 
    } 
})(); 

で: Error: No template configuration specified for '[email protected]'

は、ここに私のstateProviderの定義です。私は空の<div ui-view=""></div>または<ui-view></ui-view>を自分のルート状態に追加しようとしましたが、何もしませんでした。 エラーの回答が見つかりません。うまくいけば、誰かが私をここで助けることができます。

EDIT:

は、私も自分のroot状態でtemplate: ' 'を追加しようとしました。変わりはない。 resolveは、ビューの名前であると考えているよう

答えて

0

エラーは、

resolve: { 
    communityId: ['backendFactoryService', function (backendFactoryService) { 
     backendFactoryService....then(function (res) { 
      return res; 
     }) 
    }], 
    brandingId: ['backendFactoryService', function (backendFactoryService) { 
     // do stuff 
     }) 
    }], 
    community: ['backendFactoryService', function (backendFactoryService) { 
       // do stuff 
     }) 
    }], 
    branding: ['backendFactoryService', function (backendFactoryService) { 

       // do stuff 
     }) 
    }] 
} 

のものであり、それは、コントローラなど、テンプレートをチェックして

ので

.state('root.home', { 
    resolve: { 
    communityId: ['backendFactoryService', function (backendFactoryService) { 
     backendFactoryService....then(function (res) { 
      return res; 
     }) 
    }], 
    brandingId: ['backendFactoryService', function (backendFactoryService) { 
     // do stuff 
     }) 
    }], 
    community: ['backendFactoryService', function (backendFactoryService) { 
       // do stuff 
     }) 
    }], 
    branding: ['backendFactoryService', function (backendFactoryService) { 

       // do stuff 
     }) 
    }] 
    }, 
    views: { 
    '[email protected]': { 
     url: '/', 
     templateUrl: 'src/survey/survey.template.html', 
     controller: 'homeController',   
    } 
    } 
}) 
にあなたの状態の設定コードを変更
+0

ああ愚かな間違い、私はビューの外に別のオブジェクトを解決していた。ありがとうございます@Mr_Perfect – Diego

+0

私はそれがこの質問の範囲外であることは知っていますが、私はそれらの変数(すなわちブランド、コミュニティなど)を私のコントローラに注入すると、私は 'Error:[$ injector:unpr]'これは正しくないはずですか? – Diego

+0

変更 '[ 'backendFactoryService'、関数(backendFactoryService){ //のもの を行う}) }]'関数(backendFactoryService){ //のもの を行う} ''に。配列形式で注入する必要はありません。プロパティを 'resolve'するためのサービスが利用可能です。 –

関連する問題