Angular - 使用$ location获取GET变量

时间:2017-03-29 11:46:33

标签: javascript angularjs url get

我想使用Angular GET从网址获取$location.search() var,但它不起作用。

这是代码:

jsfiddle

and this is the GET

var app = angular.module('myApp',[]);

app.controller('odinvite', function ($scope, $location)
    {
        //$scope.mytry = 5;
        $scope.mytry =$location.search().username;
    }
);

有什么问题?还有其他方式吗?

谢谢!

编辑 -
我试图像这样手动添加哈希到这个网址 - “mydomain.com/foo.php#?username=7”并且它有效! 但是我不想每次都添加哈希值,我希望$location自动抓取它。

我也尝试添加这个 -

 app.config(['$locationProvider', function($locationProvider) {
        $locationProvider.html5Mode(true);
    }]);

解决它,但它给了我一个错误 -

Error: [$location:nobase] http://errors.angularjs.org/1.4.8/$location/nobase
    at angular.js:38
    at hf.$get (angular.js:12196)
    at Object.e [as invoke] (angular.js:4523)
    at angular.js:4340
    at d (angular.js:4482)
    at Object.e [as invoke] (angular.js:4514)
    at M.instance (angular.js:9182)
    at D (angular.js:8299)
    at g (angular.js:7731)
    at angular.js:7611
(anonymous) @ angular.js:12520
(anonymous) @ angular.js:9292
$apply @ angular.js:16157
(anonymous) @ angular.js:1679
e @ angular.js:4523
c @ angular.js:1677
yc @ angular.js:1697
Zd @ angular.js:1591
(anonymous) @ angular.js:29013
b @ angular.js:3057
If @ angular.js:3346
d @ angular.js:3334

2 个答案:

答案 0 :(得分:1)

您的示例正在使用第二个链接。它不适用于第一个链接,因为小提琴链接https://jsfiddle.net/bar2o6gf/3/不包含username

所以,我嘲笑了url的{​​{1}}使用'url'属性

<强> $location

这是代码,

$location.url('http://fiddle.jshell.net/bar2o6gf/3/show/light/?username=7');

Here is a DEMO

答案 1 :(得分:0)

这是JS Fiddle的问题以及查询字符串属性与iFrames一起使用的方式。见这里:How to pass GET parameters to jsFiddle