设置: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
我被重定向到root。
我在服务器端声明我的路由如下:
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
答案 0 :(得分:1)
查看控制台并观察AngularJS尝试从/partials/index
然后从/dashboard/partials/index
加载模板
在配置部分将 templateUrl 路径设置为/dashboard/partials/index
。
templateUrl = $sce.getTrustedResourceUrl(templateUrl);
if (angular.isDefined(templateUrl)) {
next.loadedTemplateUrl = templateUrl;
template = $http.get(templateUrl, {cache: $templateCache}).
then(function(response) { return response.data; });
}
templateUrl
与route path
没有连接 - 只需从应用程序的Angular根加载tempalteUrl
。