我正在使用Node.js和AngularJs构建我的第一个Web应用程序。我的问题在于这里的代码:
var app = angular.module('Martin', ['ngResource','ngRoute']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/', {
templateUrl: 'partials/home.html',
controller: 'PageCtrl'
})
.when('/etx/:id', {
templateUrl: 'partials/page.html',
controller: 'PageCtrl'
});
}]);
app.controller('PageCtrl', ['$scope', '$resource', '$routeParams',
function($scope, $resource, $routeParams){
console.log('Got here');
var Page = $resource('/api/pages/:id');
Page.get({ id: $routeParams.id }, function(page){
$scope.page = page;
});
}]);
根据我的理解,如果我要请求/ etx / mypage,应该运行PageCtrl中的功能,但是当我尝试在浏览器中启动它时,我收到404错误并且没有任何内容打印到控制台
我用主页('/')测试了它,然后控制器工作正常。
答案 0 :(得分:0)
正如@Claies所确定的那样,问题是我在URL中忘记了octothorpe(或者如果你想减少酷炫的话题标签)。所以它不应该是etc/mypage
,而是#/etc/mypage
。在许多情况下(包括我的),此行为不太理想,因此我建议您使用HTML5 mode for links禁用此功能。