目前我的本地服务器在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的方法。将尝试下一步。
答案 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
文件;)