博主用的ionic 這里使用ui-router傳值,用來(lái)在跳轉(zhuǎn)頁(yè)面的同時(shí)帶著你想帶走的東西一起跳走
(PS:博主半路出家,尚是菜鳥(niǎo),寫(xiě)的東西自己跑起來(lái)并沒(méi)有什么問(wèn)題但不敢保證寫(xiě)的一定對(duì),語(yǔ)言也很隨意,僅供參考。另,期待各位前輩的指教)
博主用的ionic
這里使用ui-router傳值,用來(lái)在跳轉(zhuǎn)頁(yè)面的同時(shí)帶著你想帶走的東西一起跳走
需求是這樣的,我有一個(gè)商品單子(概覽頁(yè)),點(diǎn)一個(gè)商品就可以去看它的詳情(詳情頁(yè))
要解決的問(wèn)題就是把概覽頁(yè)被點(diǎn)擊的商品的id傳給詳情頁(yè),詳情頁(yè)拿著這個(gè)id給后臺(tái),后臺(tái)返回對(duì)應(yīng)的需要的json
下面開(kāi)始實(shí)現(xiàn)
.controller('CafeCtrl', function($scope, cafeData, $state) { //往外傳值的controller里加一個(gè)$state $scope.cafeList = cafeData.All(); $scope.goDetail = function(id) { $state.go('itemDetail',{sort : "cafe", id : id}); //就拿它傳 };})在傳值的一行:
$state.go('itemDetail',{sort : "cafe", id : id});//前面的是變量名,后邊的是值我的理解是:塞了兩個(gè)變量到一個(gè)中轉(zhuǎn)的名叫$stateParams的什么東西里面,controller里面寫(xiě)法就是這樣子的,頁(yè)面上ng-click="goDetail(item.id)"調(diào)用它就可以了
app.js里,接收值的頁(yè)面(詳情頁(yè)).state這么寫(xiě),留兩個(gè)位置給剛才傳出來(lái)的東西
.state('itemDetail', { url: '/itemDetail/:sort/:id/', //這里就是那兩個(gè)要傳的東西,名字要對(duì)應(yīng)相同 templateUrl: 'templates/itemDetail.html', controller: 'ItemDetailCtrl'})然后再去接收值的頁(yè)面(詳情頁(yè))接收這倆值存?zhèn)z對(duì)象里面(接受并存下了傳來(lái)的兩個(gè)值)
.controller('ItemDetailCtrl', function($scope, $stateParams, $state) { //加個(gè)$stateParams $scope.sort = $stateParams.sort; $scope.itemId = $stateParams.id;})在上面加個(gè)$stateParams,然后下面scope一個(gè)對(duì)象,把你要的值從$stateParams里面拿點(diǎn)兒出來(lái)賦值給它就ok了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注