$ routeProvider не вызывается правильно

Я немного застрял с поставщиком маршрутов, с которым я работаю в своем приложении. Я использую хрюканье, чтобы все это уродовать, поэтому я начинаю задаваться вопросом, не является ли это частью этого?

В любом случае, несколько примеров кода с app.config:

$locationProvider.html5Mode(true);

$routeProvider.when('/home', {
    controller: 'theAppController',
    template: ''
}).otherwise({
    redirectTo : '/default'
});

Контроллер (пока находится в app.js)

app.controller("theAppController", function($scope){
    console.log("I'm an App controller!!!!!");
});

Во время app.run я вызываю это:

.run(
    ['$route', '$rootScope', '$location', function($route, $rootScope, $location) {
        console.log($route);
    }]
)

Что выводит

Object {routes: Object, reload: function}
current: e.extend.e.extend
    $$route: Object
        controller: "theAppController"
        keys: Array[0]
        originalPath: "/home"
        regexp: /^\/home$/
        reloadOnSearch: true
        template: ""
        __proto__: Object
locals: Object
params: Object
pathParams: Object
__proto__: Object
reload: function (){u=!0;a.$evalAsync(l)}
routes: Object
__proto__: Object

В качестве быстрого теста, чтобы увидеть, действительно ли $routeProvider был поражен, я запустил (home1)

$routeProvider.when('/home1', {
    controller: 'theAppController',
    template: ''
}).otherwise({
    redirectTo : '/default'
});

Который в противном случае правильно попал и изменил URL-адрес на / default

Я вижу, что сбрасывая службу маршрутизации, текущий маршрут установлен правильно, но ни шаблон (который пуст, хотя проверен и ничего не отображается), ни контроллер для этого маршрута не загружены, я даже не могу получить ошибку, используя загружен неправильный контроллер.

Есть мысли по этому поводу?

быстрое редактирование: я также использую свой html

<div ng-view></div>

person cdnicoll    schedule 25.05.2014    source источник
comment
Что в $$route: Object ? Скрипка тоже не помешала бы :)   -  person gkalpak    schedule 25.05.2014
comment
Извините, перепутал отступ. Это текущий маршрут. Я не могу возиться с этим, потому что это что-то особенное для моей настройки приложения, которое я чувствую. Я быстро сделал простой прототип, но он работает... Я начинаю думать, что это уродство. Я должен, возможно, попробовать ngmin перед рукой   -  person cdnicoll    schedule 25.05.2014
comment
Подождите, если вы не используете ngmin (или что-то подобное), то controller('...', function($scope){ точно сломается. $scope не передается аргумент, имя которого может быть произвольным. Это Dependency-Injected, поэтому его имя очень важно.   -  person gkalpak    schedule 25.05.2014


Ответы (1)


Я не совсем уверен, о чем именно ваш вопрос, но я чувствую, что вы не можете ничего загрузить при перенаправлении на / default, и это потому, что вы не обрабатываете маршрут:

$routeProvider.when('/home', {
    controller: 'theAppController',
    template: ''
}).when('/default', {
    controller: 'theDefaultController',
    template: '<p>You have been redirected to the default route<p>'
}).otherwise({
    redirectTo : '/default'
});

app.controller("theDefaultController", function($scope){
    console.log("I'm the Default controller!!!!!");
});
person Gavin van Gent    schedule 02.10.2014