2014-10-30 67 views
4

這是我第一次嘗試在AngularJS中使用$ location服務來檢查查詢字符串參數。我一直在閱讀文檔並試圖在Plunkr中使用它來了解如何使用它,但到目前爲止,我未能從查詢字符串中檢索任何參數。

我一直在使用測試它這個花掉http://plnkr.co/edit/RIFdWa5ay2gmRa6Zw4gm?p=info

var app = angular.module('myApp', []) 
    .config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
    }); 

angular.module('myApp').controller('myCtrl', function($scope, $location){ 
    $scope.name = "Andrei"; 
    $scope.url = $location.host(); 
    $scope.path = $location.path(); 
    $scope._params = $location.search(); 
    }); 

我讀過設置在$ locationProvider html5Mode(真),以獲得$位置服務的「預期的工作是必需的「 - 我已經完成了,但是當設置這個時候,在我的普通模式中沒有任何工作了(你可以將它設置爲false,並且你會看到綁定再次正確)。

我錯過了有關$ location服務的內容嗎?

任何幫助或建議表示讚賞!

謝謝!

+1

你Plunker不工作..對角1.3,你需要在你的HTML中加入鹼標籤..和之後,你的plunker是沒有查詢參數的iframe中(正如你所看到的路徑不同於當前的URL路徑) 我正在使用$ location.search()來獲取url參數,它可以工作。 – 2014-10-30 13:42:10

回答

2

在AngualarJS 1.3中$location在HTML5模式下需要存在<base>標籤,以便它知道所有鏈接相對於的路徑。您可以添加<base href="/" />以使其再次運行。

http://plnkr.co/edit/j9rd1PajNLQVJ8r4c8BZ?p=preview

+0

感謝您的評論!我錯過了AngularJS文檔的基礎部分。事實上,一旦添加到index.html的代碼再次運行,但我仍然沒有看到使用search()getter的查詢字符串。不應該在上面的場景(url)搜索()getter return {「p」:「info」}? – AndreiC 2014-10-30 13:52:09

+1

代碼運行的iframe的URL實際上是「http://run.plnkr.co/b5QdYqBeapjRDHkk/」,沒有查詢字符串。 '編輯'網址是爲page/plnkr應用程序。 – TheSharpieOne 2014-10-30 13:55:31

+0

在我的機器上做了一個獨立的測試,並按照我想要的那樣開始工作。感謝你的幫助。 – AndreiC 2014-10-30 14:21:03