angularJS 傳參的四種方法 【修改】


1. 基於ui-router的頁面跳轉傳參
(1) 在AngularJS的app.js中用ui-router定義路由,比如現在有兩個頁面,一個頁面(producers.html)放置了多個producers,點擊其中一個目標,頁面跳轉到對應的producer頁,同時將producerId這個參數傳過去。

.state('producers', { url: '/producers', templateUrl: 'views/producers.html', controller: 'ProducersCtrl' }) .state('producer', { url: '/producer/:producerId', //方法一;通過路由 傳參 直接把參數掛載在url上
  url: '/producer' //方法二: 通過 params templateUrl: 'views/producer.html',
  params:{producerId:""}, //方法二:路由設置參數 controller: 'ProducerCtrl' })


(2) 在producers.html中,定義點擊事件,比如ng-click="toProducer(producerId)",在ProducersCtrl中,定義頁面跳轉函數 (使用ui-router的$state.go接口):

.controller('ProducersCtrl', function ($scope, $state) { $scope.toProducer = function (producerId) {  //方法二: $state.go("url",{}) 傳遞參數 $state.go('producer', {producerId: producerId}); 通過 go接口進行傳參時,要注意 在接受參數的路由下要配置 params:{producerId:""} 鍵名是相同的 否則接受不到參數 }; }); 


(3) 在ProducerCtrl中,通過ui-router的$stateParams獲取參數producerId,譬如:

.controller('ProducerCtrl', function ($scope, $state, $stateParams) { var producerId = $stateParams.producerId; // 獲得參數 $stateParams.key 方法二 }); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM