Kode sumber HTML
<div ng-app="">
<div ng-controller="test">
<div ng-address-bar browser="html5"></div>
<br><br>
$location.url() = {{$location.url()}}<br>
$location.search() = {{$location.search('keyword')}}<br>
$location.hash() = {{$location.hash()}}<br>
keyword valus is={{loc}} and ={{loc1}}
</div>
</div>
Kode sumber AngularJS
<script>
function test($scope, $location) {
$scope.$location = $location;
$scope.ur = $scope.$location.url('www.html.com/x.html?keyword=test#/x/u');
$scope.loc1 = $scope.$location.search().keyword ;
if($location.url().indexOf('keyword') > -1){
$scope.loc= $location.url().split('=')[1];
$scope.loc = $scope.loc.split("#")[0]
}
}
</script>
Di sini variabel loc
dan loc1
keduanya mengembalikan tes sebagai hasil untuk URL di atas. Apakah ini cara yang benar?
javascript
angularjs
routeparams
praveenpds
sumber
sumber
Jawaban:
Saya tahu ini adalah pertanyaan lama, tetapi saya perlu waktu untuk menyelesaikannya mengingat dokumentasi Angular yang jarang. The RouteProvider dan routeParams adalah cara untuk pergi. Rute menghubungkan URL ke Controller / View Anda dan routeParams dapat diteruskan ke controller.
Lihatlah proyek benih Angular . Di dalam app.js Anda akan menemukan contoh untuk penyedia rute. Untuk menggunakan params cukup tambahkan mereka seperti ini:
Kemudian di controller Anda menyuntikkan $ routeParams:
Dengan pendekatan ini Anda dapat menggunakan params dengan url seperti: " http://www.example.com/view1/param1/param2 "
sumber
});
adalah}]);
/view/1/2?other=12
dengan$routeParams.other
Meskipun perutean memang merupakan solusi yang baik untuk penguraian URL tingkat aplikasi, Anda mungkin ingin menggunakan layanan yang lebih rendah
$location
, seperti yang disuntikkan di layanan atau pengontrol Anda sendiri:Sintaks sederhana ini akan berfungsi untuk
http://example.com/path?myParam=paramValue
. Namun, hanya jika Anda mengonfigurasi$locationProvider
dalam mode HTML 5 sebelumnya:Kalau tidak, lihat di http://example.com/#!/path?myParam=someValue sintaks "Hashbang" yang sedikit lebih rumit, tetapi manfaatkan bekerja pada browser lama (tidak kompatibel dengan HTML 5) sebagai baik.
sumber
<base href="http://example.com/en/" />
tag di blog Andaindex.html
..config(['$locationProvider', function($locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }); }])
$locationProvider
agar ini berfungsi.http://example.com/path#?someKey=someVal
, lalu$location.search().someKey // => 'someVal'
Jika Anda menggunakan ngRoute, Anda dapat menyuntikkan
$routeParams
ke controller Andahttp://docs.angularjs.org/api/ngRoute/service/$routeParams
Jika Anda menggunakan angular-ui-router, Anda bisa menyuntikkan
$stateParams
https://github.com/angular-ui/ui-router/wiki/URL-Routing
sumber
$stateParams
menampilkan parameter kueri, saya harus menentukannya saat mendefinisikan status, seperti yang ditunjukkan di github.com/angular-ui/ui-router/wiki/…Saya menemukan solusi cara menggunakan $ location.search () untuk mendapatkan parameter dari URL
pertama di URL Anda harus meletakkan sintaks "#" sebelum parameter seperti contoh ini
"http://www.example.com/page#?key=value"
dan kemudian di controller Anda, masukkan $ location dalam fungsi dan gunakan $ location.search () untuk mendapatkan parameter URL
sumber
Jika jawaban yang sudah diposting tidak membantu, Anda dapat mencoba $ location.search (). MyParam; dengan URL http: //example.domain#? myParam = paramValue
sumber
sumber
Cara sederhana dan mudah untuk mendapatkan nilai url
sumber
Saat menggunakan angularjs dengan express
Pada contoh saya, saya menggunakan angularjs dengan express melakukan routing sehingga menggunakan $ routeParams akan mengacaukan routing saya. Saya menggunakan kode berikut untuk mendapatkan apa yang saya harapkan:
Ini menerima templat URL dan jalur dari lokasi yang diberikan. Saya hanya menyebutnya dengan:
Menyatukan semuanya controller saya adalah:
Hasilnya adalah:
Semoga ini bisa membantu seseorang di luar sana!
sumber