Rumah > Soal Jawab > teks badan
请问 angular-ui-route 中的
$state.go('xxx',{id:'1'})
只能传递这种简单字符串吗?
我想传object应该怎么传 用全局变量吗?
phpcn_u15822017-05-15 16:54:32
Bukan sahaja anda boleh melepasi rentetan mudah, tetapi sudah tentu anda juga boleh melepasi objek
Nama parameter yang ditunjukkan dalam konfigurasi penghala Ambil ui-router sebagai contoh
$stateProvider.state('state1', {
url: '/path/:id', // 这个地方用简单字符串
templateUrl: '/path/to.html',
params: {
obj: null // 这个地方就可以随便你用了. 因为这个参数没在state的url中体现出来
}
}).
Gunakan $state untuk menukar halaman
$state.go('state1', {
id: '22',
obj: {
key: 'value'
}
});
Gunakan $stateParams dalam pengawal untuk mendapatkan parameter
console.log($stateParams.obj)
Sudah tentu, jika anda lulus parameter yang tidak ditunjukkan dalam URL, parameter tidak akan tersedia semasa operasi seperti kembali
Anda boleh menggunakan kaedah @whosesmile untuk beroperasi Gunakan perkhidmatan LZ boleh melihat pada sudut terbina dalam $cacheFactory
Gunakan ini untuk menjana cache dan melaksanakan put get remove removeAll
dan operasi lain
大家讲道理2017-05-15 16:54:32
Biasanya dua pilihan
1. Pembolehubah global, iaitu, menggunakan $rootScope
2. Gunakan perkhidmatan. Oleh kerana perkhidmatan adalah satu contoh dan tidak akan dimusnahkan, anda boleh menentukan perkhidmatan data cache umum untuk mengakses perkhidmatan Panggilan (kunci, nilai) dalam pengawal yang perlu memindahkan data service.get('key')
伊谢尔伦2017-05-15 16:54:32
Terlupa versi ui-router yang menambah kaedah berikut untuk mengekalkan parameter dalam url
1.$state
$state.go("state",{datas:{ID:data1,NAME:data2}})
2. Konfigurasikan penghala
.state('state',{
url:'path/{datas:json}',
params:{'datas':null}.
...
})
3. Gunakan $stateParam.datas untuk mendapatkan