传参小解

作者: 枫尘逍遥 | 来源:发表于2017-10-16 20:26 被阅读4次

    常用有四种请求方式,get,put,post,delete

    但是他们的传参的形式是不同,

    1.get

    get传参都是以附在URL后面传递的,举个栗子

    goodsExchange_url: function(goodsId,staffId) {

    return"/a/o/goodsExchange?goodsId="+goodsId+"&staffId="+staffId;

    },

    $rootScope.portService.goodsExchange($stateParams.goodsId,50)

    .then(

    functionsuccessCallback(data1) {

    bootbox.alert(data1.data.message)

    }

    );

    这里面的goodsIdhe staffId都是形参,用x,y替代也是可以的,他俩代表的是$stateParams.goodsId和50这两个实参,但是写的时候一定要注意顺序,因为形参就是占位符,是占个位置,弄乱了传参就乱了;

    当然,他还能用params:data;的形式,其实也是讲data里面的数据序列化为上面的格式;

    举个栗子

    goodsDetail_url: function() {

    return"/a/o/goodsDetail";

    },

    goodsDetail: function(data) {

    return $http.get(address.goodsDetail_url(), {params:data});

    },

    $rootScope.portService.goodsDetail({goodsId:$stateParams.goodsId,staffId:50})

    .then(

    functionsuccessCallback(data1) {

    vm.data=data1.data.data;

    console.log(vm.data)

    },

    functionerrorCallback(response) {

    }

    );

    这里就传了两个参数进去goodsId和staffId,是以对象的方式写入,然后被pramas序列化为一串字符串;

    上面既然用到了$stateparams,就想说一下另外一点:

    URL传参:想要用URL传参,一般是使用get请求方式,请求参数附在URL后面,最主要的是在配置路由的时候,路由地址后面也要写上参数名。

    forexample:

    //企业员工列表

    .state('field.employeeLists', {

    url: '/employeeLists/:size/:page/:name/:phone/:departmentName/:positionName',

    templateUrl: 'views/organizationalStructure/employeeLists.html',

    controller: 'employeeListsCtrl',

    controllerAs: 'vm',

    resolve: {

    loadMyFile: _lazyLoad([

    'js/controllers/organizationalStructure/employeeLists.js'

    ])

    }

    })

    只有在路由里面也写上了参数名,才能在在这页面里面使用$stateParams将URL里面的参数读取出来,而且刷新之后也不会失效

    2.put,post

    有两种传参形式,

    第一种就是像get一样附在URL后面

    "/a/o/goodsExchange?goodsId="+goodsId+"&staffId="+staffId;

    第二种是以application/json的形式传递,还是举个栗子

    goodsAdd: function(data) {

    return$http.post(address.goodsAdd_url(),data);

    },

    vm.publish=function(data){

    $rootScope.publishConfirm($rootScope.portService.goodsAdd,data);

    };

    data里面包含的就是一组json对象

    3.突然想起还有一种形式

    是直接参与以URL地址的形式发送,与附在URL后面又不同;

    还是举例子实际:

    exchangeLogDetail_url: function(id) {

    return"/a/o/exchangeLog/"+id;

    },

    exchangeLogDetail: function(id) {

    return$http.get(address.exchangeLogDetail_url(id));

    },

    这种一般只传一个id进去

    相关文章

      网友评论

        本文标题:传参小解

        本文链接:https://www.haomeiwen.com/subject/ayyluxtx.html