目前,我的本地主机上运行着本地服务器,
理想情况下,我希望进行以下设置: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
文件;)