2017-02-07 6 views
0

IDをURLパラメータ経由で、 "more.html"というページに渡そうとしています。 URLパラメータは次のようになります。ロケーションサービスがURLパラメータをコントローラに渡しません

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

私はURLからパラメータIDを取得するためにmore.htmlページに私のコントローラで$場所サービスを使用していました。ここに私が使用したコントローラコードがあります。

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'を使って変更することはできますか?またはURLを更新する。 –

答えて

0

変更しますurl structure次のように

から(#を追加):

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

へ:#more.htmlを追加

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

とあなたのURLパラメータの前には、問題を解決します。 次のプロジェクトではparametersを使用するより構造化された方法であるui-routerを使用することができます。

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

偉大なそれを聞いて:) –

関連する問題