Estou sofrendo um problema com o roteador ui quando adiciono um segmento errado à rota.
Um exemplo … http://xxx.xxxxx.xxx/roles funciona bem. Esta é uma rota definida sem parâmetros. Mas se eu adicionar outro segmento na pesquisa http://xxx.xxxxx.xxx/roles/kk, o $ urlRouteProvider.otherwise (‘/’) não funciona e o aplicativo está tentando carregar todos os resources da web (css, html, javascript, etc.) de uma rota como http://xxx.xxxxx.xxx/roles/app/app.css retornando muitos erros no console.
Este código está no meu app.config:
$urlRouterProvider .otherwise('/'); $locationProvider.html5Mode(true);
E este é um exemplo de definição de rota:
angular.module('myApp') .config(['$stateProvider', function ($stateProvider) { $stateProvider .state('roles', { url: '/roles', templateUrl: 'app/modules/admin/roles/index.html', controller: 'RolesCtrl', authenticate: true }) .state('logs', { url: '/logs', templateUrl: 'app/modules/admin/logs/index.html', controller: 'LogsCtrl', authenticate: true }) .state('parameters', { url: '/parameters', templateUrl: 'app/modules/admin/parameters/parameters.html', controller: 'ParametersCtrl', authenticate: true }); }]);
Qualquer ajuda com esse comportamento? Atenciosamente Jose
Não tenho certeza onde está o problema aqui … mas eu criei o plunker de trabalho , o que deve ajudar a ver o que é necessário para ver o HTML 5 e o ui-router
trabalhando juntos. Caso esse servidor esteja configurado corretamente, isso deve funcionar imediatamente. Por favor, verifique isso primeiro:
Agora, isso seria ajustado como def do estado, para mostrar o aninhamento profundo do URL:
$stateProvider .state('roles', { url: '/roles/:id', ... }) .state('roles.logs', { url: '/logs', ... }) .state('roles.logs.parameters', { url: '/parameters', ... });
Para fazer todos estes chamam abaixo de wroking:
temos que não esquecer de definir corretamente o URL base, no nosso exemplo:
...
Mas para plunker devemos definir isso dinamicamente:
Confira o exemplo de trabalho aqui
Você também tem que definir um estado que aponte para o url de outra forma , dessa forma, os roteadores de interface do usuário sabem como lidar com o estado padrão.
var app = angular.module('demo', ['ui.router']); app.config(function($stateProvider, $urlRouterProvider){ $stateProvider .state('roles', { url: '/roles', templateUrl: 'roles.html' }) .state('otherwise', { url: '/', templateUrl: 'otherwise.html' }) $urlRouterProvider .otherwise('/'); })