如何忽略网址的部分内容?

时间:2014-03-22 18:24:35

标签: javascript php angularjs url

目前我的本地服务器在localhost

运行我的主页

我理想地希望设置url有一个密钥,我发送到我的数据库以获取数据,主页面加载该数据

例如,有人输入localhost / 4962的url,然后4962被发送到数据库,而localhost加载。我正在使用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的方法。将尝试下一步。

2 个答案:

答案 0 :(得分:0)

你可以使用$location.path() - 函数,只返回路径(没有主题标签)。

答案 1 :(得分:0)

这样做:

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文件;)