角度控制器在路径参数上返回404

时间:2017-04-20 01:26:04

标签: javascript angularjs node.js

我正在使用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错误并且没有任何内容打印到控制台

我用主页('/')测试了它,然后控制器工作正常。

1 个答案:

答案 0 :(得分:0)

正如@Claies所确定的那样,问题是我在URL中忘记了octothorpe(或者如果你想减少酷炫的话题标签)。所以它不应该是etc/mypage,而是#/etc/mypage。在许多情况下(包括我的),此行为不太理想,因此我建议您使用HTML5 mode for links禁用此功能。