2015-02-18 2 views
2

Если я установил $locationProvider.html5Mode(true), мое заявление будет возвращено: 10 $digest() iterations reached. Aborting! (...). Ниже приведены мои фрагменты кода.

Мои маршруты конфигурации:

function configRoutes($stateProvider, $urlRouterProvider, $locationProvider, routeConfigProvider) { 
    var routes = routeConfigProvider.$get(); 

    $locationProvider.html5Mode(true); 

    $urlRouterProvider.otherwise('/default'); 

    $urlRouterProvider.when('/', '/route1'); 
    $urlRouterProvider.when('/route1', '/route1/route11'); 
    $urlRouterProvider.when('/route2', '/route2/route22'); 

    // Register all routes. 
    for (var i = 0; i < routes.length; i++) { 
    var route = routes[i]; 
    $stateProvider 
     .state(route.state, route.options); 
    } 
} 

Мой файл web.config:

<rewrite> 
    <rules> 
     <rule name="Main Rule" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/" /> 
     </rule> 
    </rules> 
</rewrite> 

ответ

3

не используют

$ urlRouterProvider.otherwise ('/ по умолчанию');

заменить:

$urlRouterProvider.otherwise(function ($injector, $location) { 
    var $state = $injector.get("$state"); 
    $state.go("default.state"); 
}); 

заменить «default.state» с состоянием по умолчанию

+0

не работает, прежде чем по другим причинам, внесены другие изменения и теперь работал. Спасибо. – Doug

+0

Он отлично работает! но почему я не должен использовать '$ urlRouterProvider.otherwise ('/ default');'? – Jobsamuel

+0

@Jobsamuel Похоже, что это ошибка с ui-router, когда вы используете комбинацию $ urlRouterProvider.otherwise ("/ default") с $ stateChangeStart. Проблема, о которой сообщалось здесь: https://github.com/angular-ui/ui-router/issues/600 –

Смежные вопросы