我有一个有角度的js应用程序,它在访问包含一些查询字符串参数的URL链接后从另一个应用程序加载:
http://myDomain/clover/?merchant_id=65AY4FNRE9PSG&employee_id=Z1TZ0S0H758TG&client_id=9WJBRXSF1XM8P&code=c0ae98d6-d13c-2c4d-f601-d2ebd3d58ae9#/login我想做两件事:
这两个功能都应该发生在页面加载中.。
我已经引导了我的角度应用程序,比如:
angular.element(document).ready(function () {
angular.bootstrap(document,['mPos']);
});我的服务代码是:
mPosServices.factory('mosServiceFactory', function ($http, $rootScope, $cookies, $q) {
return{
loginService: function (userData) {
var loginService = $http({
method: 'get',
data: {
'islogin': true
},
url: 'http://myServiceURL/oauth/token?grant_type=password&client_id=restapp&client_secret=restapp&username=' + userData.username + '&password=' + userData.password
});
return loginService;
},
enroll: function (signupdata) {
var signup = $http({
method: 'post',
data: signupdata,
url: 'http://myServiceURL/merchant/enrollment'
});
return signup;
}
};
});我应该如何获取那些URL参数ao页面加载?如何在页面加载时调用$http请求,以便可以进行注册和登录?
发布于 2015-07-31 03:58:21
如果您首先加载登录视图,那么您可以在该loginController中调用您的服务,一旦登录路由启动,将在页面加载上调用该服务。
myCtrl.controller('loginController', ['$scope', '$rootScope', 'mosServiceFactory', '$location', '$cookies', '$modal', 'ngDialog', function ($scope, $rootScope, mosServiceFactory, $location, $cookies, $modal, ngDialog) {
//call your services here and it will be called once login view gets initiated.
});
};
}]);发布于 2015-07-20 10:43:11
你最好的选择是使用像https://github.com/angular-ui/ui-router这样的东西
您可以配置$on.'$stateChangeStart‘事件,以便在它开始加载视图之前运行您想要的任何东西,或者使用"resolve“,这在某种程度上是类似的。还可以在加载类似于so (参数s&d)的视图之前从查询字符串中提取参数:
.state('pubrun', {
url: '/pubrun?s&d',
controller: 'pubCtrl',
controllerAs: 'vm',
templateUrl: 'views/partials/pub/pubrun.html',
})然后在我的控制器中访问该视图:
this.query.studyId = $stateParams.s;
this.query.distId = $stateParams.d;发布于 2015-07-20 10:52:19
您可以使用module.run()这样做,如下所示:
mPosServices.run(function(mosServiceFactory) {
mosServiceFactory.loginService({
username: 'foo',
password: 'bar'
}).then(function(res) {
// do something with res
});
});博士:https://docs.angularjs.org/api/ng/type/angular.Module#run
Update:对于解析URL,您可以在此处使用https://stackoverflow.com/a/7826782/1438522片段
https://stackoverflow.com/questions/31514299
复制相似问题