常用有四種請求方式框舔,get,put,post,delete
但是他們的傳參的形式是不同褐耳,
1.get
get傳參都是以附在URL后面?zhèn)鬟f的泞辐,舉個栗子
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:
//企業(yè)員工列表
.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地址的形式發(fā)送巍实,與附在URL后面又不同;
還是舉例子實際:
exchangeLogDetail_url: function(id) {
return"/a/o/exchangeLog/"+id;
},
exchangeLogDetail: function(id) {
return$http.get(address.exchangeLogDetail_url(id));
},
這種一般只傳一個id進去