之前在项目中遇到利用Angular js中ui-router跳转时需要携带参数,对比了使用$stateProvider.state带参数跳转,做了一个记录:
- 标签跳转到新的controller页面,eg:
<a ng-show="(!card.isBuy)" ng-href="#Buy/{{appParams}}" target="view_window" ng-click="buyFun(card.everyApplyId)" class="buyAndEnter">购买</a>
其中,要跳转到“Buy”页面,需要携带的参数是“appParams”。
- Buy页面的配置如下:
var configArr = [{
name: 'Buy',
url: '/Buy/:APP',
templateUrl: 'src/business/Buy/views/Buy.html',
cache:false,
controller: 'Buy.ctrl',
scripts: {
controllers: [
'src/business/Buy/controllers/BuyCtrl',
// 'src/business/user/controllers/userCtrl',
],
// params:{"isAPP":null},
},
}
即将上述appParams传递到Buy页面的APP参数中。在Buy页面的controller中要使用APP参数,则应注册$stateParams,然后以如下方式获取:
var BuyCtrl = ['$rootScope','$scope','$stateParams', function ($rootScope,$scope,$stateParams) {
console.log("应用ID和跳转名称:"+$stateParams.APP);
console.log("应用ID:"+$stateParams.APP.split(",")[0]);
console.log("跳转名称:"+$stateParams.APP.split(",")[1]);
$scope.jumpState='#'+$stateParams.APP.split(",")[1];
$scope.appID=$stateParams.APP.split(",")[0];}