我与我在我的应用程序中工作的路由提供商有点困惑。我使用咕噜来解决所有这些问题,所以我开始怀疑这部分是否属于它?
无论如何使用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>
答案 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!!!!!");
});