$stateProvider
で使用しているビューの構文に完全に慣れていません。私はあなたに2つのバージョンを与えます、最初はあなたの例に非常に類似しているように見えます、そして、2つ目はベストプラクティスにもっと整列します。
$stateProvider
.state('base', {
abstract: true,
url: '',
templateUrl: 'views/base.html'
})
.state('login', {
url: '/login',
parent: 'base',
templateUrl: 'views/login.html',
controller: 'LoginCtrl'
})
.state('dashboard', {
url: '/dashboard',
parent: 'base',
templateUrl: 'views/dashboard.html'
})
ベストプラクティスのバージョン:
(function() {
'use strict';
angular
.module('app.core')
.config(stateConfig)
.run(errorHandler);
stateConfig.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider'];
getZipCodes.$inject = ['googleMapService'];
errorHandler.$inject = ['$rootScope', 'logger'];
function stateConfig($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/');
$stateProvider.state('core', {
url: '/',
templateUrl: 'app/core/core.html',
controller: 'CoreController',
controllerAs: 'vm',
resolve: {
getZipCodes : getZipCodes
}
})
}
/** @desc: Ping the back-end for a JSON object that will be converted into an array of NYC zip codes */
function getZipCodes(googleMapService) {
return googleMapService.getZipCodes();
}
/** @desc: $stateChangeError handler */
function errorHandler($rootScope, logger) {
$rootScope.$on('$stateChangeError', function (error, event) {
if (error) { logger.error('Error while changing states', error); }
if (event) { logger.error('The event that caused the error', event); }
})
}
})();
ありがとうございました!それは働いた '親'を加えることによって – moondaisy
驚くばかり! D 余分なクレジットが必要な場合は、現在のソリューションをベストプラクティスのバージョンにリファクタリングしようとします。ここに参考のためのリンクがあります: https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md – richdotjs
私はまたそれを追加したいと思います。デバッグをより簡単に進めることができます。私はエラーメッセージのない空白のページを見ながら、あなたが欲求不満に圧倒されていたに違いないと思います。 (エラー){logger.error( '状態の変更中にエラーが発生しました'、エラー);} if(event){logger} {$ eventChangeError、function(error、event)}エラー( 'エラーを引き起こしたイベント'、イベント);} }) ' – richdotjs