【发布时间】:2014-07-24 22:52:16
【问题描述】:
设置:jade、angular、express、node。
在我的 routeProvider 角度中,我遇到了一些问题。我正在请求一个带有未捕获参数的 url。
var app = angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
//... omitted some url/pages here
//start of SPA
.when('/dashboard/', {
templateUrl: 'partials/index',
controller: 'dashIndexCtrl'
})
.when('/dashboard/class/:id',{
templateUrl: 'partials/class',
controller: 'classCtrl'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);
当我打电话给localhost/dashboard/class/TEST时
我被重定向到根目录。
我在服务器端声明我的路由如下:
app.get('/dashboard', routes.dashboard);
app.get('/dashboard/partials/:name', routes.partials);
app.get('/api/class/:id', api.classGet);
我的控制器名称与routeProvider 匹配。在这种情况下,控制器代码如下:
app.controller('classCtrl', function($scope, $http, $routeParams){
$http.get('/api/class/' + $routeParams.id)
.success(function(dataJson){
console.log(dataJson);
});
});
为什么routeProvider 缺少此网址?我在我的控制器中设置了断点,所以我确定它没有被调用。我的partials/class.jade 也没有被调用。如果您需要更多代码或目录信息,请告诉我。提前致谢。
经过进一步调查:
如果我去:
localhost/dashboard/partials/class 它会加载那个玉文件。所以它肯定是控制器。
目录结构,我相信这是我现在的问题....
+---\
| +---\views
| +---index.jade
| +---dashboard.jade
| +---\partials
| +---index.jade
| +---class.jade
【问题讨论】:
-
如果你访问地址
localhost/partials/class浏览器返回什么?解析模板的代码? -
@KrzysztofSafjanowski 它只会将我重定向到
/根文件夹。即使我拿出otherwise()
标签: javascript node.js angularjs route-provider