2017-02-07 61 views
0

我試圖通過URL參數傳遞ID頁面名爲「more.html」。所以URL參數將如下所示。

http://example.com/more.html?id=200 

我用$位置服務在我的控制器的more.html頁面上獲得來自URL參數ID。這是我使用的控制器代碼。

var app = angular.module('myApp', []); 
app.controller('customersCtrl', function($location, $scope, $http) { 
    var sno = $location.search().id; 
    alert(sno); 
}); 

我從上面的代碼得到的結果是「未定義」。

+2

嘗試使用http://example.com/more.html#?id=200(加 '#'),但你爲什麼不使用$狀態,而不是$位置?更清潔和結構化的方法。 https://scotch.io/tutorials/angular-routing-using-ui-router –

+0

問題是我通過鏈接傳遞id。如list1,list2。所以,我希望它不可能。 –

+0

所以...可以改變使用'$ state'方法,不是嗎?或更新網址。 –

回答

0

更改您url structure如下(添加#

來自:

http://example.com/more.html?id=200 

到:

http://example.com/more.html#?id=200 

添加#more.html之前您的網址參數將解決這個問題。 也許您的下一個項目可以使用ui-router,這是一種更具結構化的使用parameters的方式。

https://github.com/angular-ui/ui-router

0

你沒有定義你注入的參數。它應該看起來像下面的代碼:

var app = angular.module('myApp', []); 
app.controller('customersCtrl', ['$location' , '$scope' , '$http' , function($location, $scope, $http) { 
    var sno = $location.search().id; 
    alert(sno); 
}]); 
1

就像@ daan.desmedt告訴的那樣。我將URL結構更改爲以下內容,並通過它傳遞了ID。

來自:

http://example.com/more.html?id=200 

到:

http://example.com/more.html#?id=200 

我加 more.html後。它解決了這個問題。

+0

很高興聽到它的解決:) –

相關問題