$ routeProvider没有正确调用

时间:2014-05-25 18:21:51

标签: angularjs route-provider

我与我在我的应用程序中工作的路由提供商有点困惑。我使用咕噜来解决所有这些问题,所以我开始怀疑这部分是否属于它?

无论如何使用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'
});

其他正确命中并将网址更改为/ default

我可以看到通过转储路由服务,当前路由设置正确但是既没有模板(虽然是空的,虽然经过测试但没有显示),也没有加载该路由的控制器,我不能甚至在加载不正确的控制器时出错。

对此有何想法?

快速编辑:我也在使用

的html中
<div ng-view></div>

1 个答案:

答案 0 :(得分:0)

我不完全确定你的问题究竟是什么问题,但我觉得你在重定向到/ 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!!!!!");
});