angularJS的controller层向service层传参,并通过service层进行带参访问后台
- service层代码
angular.module('loginPage.service',[])
.factory('loginPageService',function(configService,$http){
return{
login : function(phone, callback){
var url = configService.getHostUrl() + '/loginPage/login.do?callback=JSON_CALLBACK'
$http.jsonp(url,{
method:'get',
params:{'phone':phone},
headers : {'Content-Type': 'application/x-www-form-urlencoded'},
})
.success(function(data){
var obj = JSON.stringify(data);
localStorage.setItem("userMessage",obj);
//console.log(localStorage.user);
callback(data);
})
}
}
})
- controller层代码
loginPageService.login($scope.user.phone, function(data){})
谈谈我对这种写法的理解,angular JS 其实就和写后台有点类似,因为后台也有controller层和service层。我这里在service层写了一个login方法,那么controller层就可以调用这个方法,我们都知道调用方法就可以在方法里面去传参,我们只需要把参数写在方法里面就可以啦,然后service层就负责接收参数并且引用这个参数。当然这只是我的拙见。
因为我的项目要用到跨域访问,所以我这里用了jsonp方式去实现跨域访问,不过jsonp跨域访问好像只能用get方式访问,所以后台要记得也用get方式。