目前,我的本地主机上运行着本地服务器,

理想情况下,我希望进行以下设置:URL具有发送到数据库的密钥以获取数据,并且主页加载该数据

例如,某人输入localhost / 4962的URL,然后在本地主机加载时将4962发送到数据库。我正在使用angularJS,所以我确实有一种通过以下方式获取网址的方法...

var module = angular.module('app', []).run(function($rootScope, $location) {
    $rootScope.location = $location;
});


然后location.absUrl()获取完整的URL。

但是很明显,在localhost / 4962上没有页面,所以我只得到404。
如何忽略网址中的数字?另外,我如何获得数字,如果哈希可以简化问题,我愿意执行localhost /#/ 4962。

编辑:
以下是一些有用的答案。这就是我去的-

var app = angular.module("app", ["ngRoute"]);

app.config(function($routeProvider) {
    $routeProvider
      .when('/:message',
      {
        template: " ",
        controller: "AppCtrl"
      }).otherwise({redirectTo: '/'});
});

app.controller("AppCtrl", function($scope, $routeParams) {

    $scope.model = {
        message: $routeParams.message
    }
    //debugging
    console.log($scope.model.message)
});


我需要

<ng-view></ng-view>


在index.html中。
Angularjs using $routeProvider without ng-view具有避免添加ng-view的方法。接下来会尝试的。

最佳答案

像这样做:

angular.module('app', ['ngRoute']).config(function($routeProvider, $locationProvider){

    $routeProvider.when('/:number?', {
        controller: 'homeCtrl',
        templateUrl: '/home.html'
    });

    $locationProvider.html5Mode(true);

}).run(function(){
    ...
});

在这种情况下,number是可选的路由参数(因为它的末尾有?)。然后您可以从控制器获取编号:
angular.module('app').controller('homeCtrl', function($routeParams){

    var number = $routeParams.number;

});

不要忘记包含angular-route.js文件;)

10-06 02:27