这是我的网址:
http://localhost:8091/apps/dashboard/#!/#%2Findex%3Fsession=564badc5919b42fa880f1b34ae5d0740
我从下面提到的代码中得到'未定义':
$location.search().session
这里有什么问题?我是Angular的新手,想从查询字符串中获取会话变量。
提前致谢!
答案 0 :(得分:2)
您的app.config中需要包含 $ locationProvider 。 然后,您需要在使用$ location.search()之前配置html5Mode。 以下示例将为您提供帮助。
app.config(['$routeProvider', '$locationProvider', function($routeProvider,
$locationProvider) {
$routeProvider
.when("/", {
templateUrl : 'xxx.html'
, controller: 'xxxController'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
干杯!
答案 1 :(得分:1)
想到我的网址构造不正确。重新构建了URL,并且所有URL都按预期开始工作。
对我来说,这是正确的网址格式:
http://localhost:8091/apps/SPMDashboardApp/#!/index?session==564badc5919b42fa880f1b34ae5d0740
答案 2 :(得分:0)
您也可以尝试以下方法:
由于AngularJS将查询字符串作为一组键/值对提供, 使用这样的东西:
URL-http://my.site.com/?myparam=33
if ( $location.search().hasOwnProperty( 'myparam' ) ) {
var myvalue = $location.search()['myparam'];
// 'myvalue' now stores '33'
}
您必须在控制器中注入$ location。
很容易忘记,因为有两个位置(如所有注射):
app.controller( 'MyController', [ '$scope', '$location', function( $scope, $location )
您必须在HTML中添加“基本”元素。 (当您的应用程序投入生产时非常重要)
此行对于支持$ location HTML5模式是必需的(用于查询 字符串参数)。
<base href="/">