我對Angular有點新鮮,我正在嘗試設置一個非常簡單的RPC實現,它使用angulars $http
服務(工廠)來完成這項工作。下面是我對迄今爲止的服務:
'use strict';
angular.module('xxx')
.factory('rpcService', function ($http) {
return {
request: function(method, params, callback) {
var service = method.split('.');
params = params || {};
params.method = service[1];
return $http.post('/services/' + service[0] + '.sjs', params).then(function (response) {
return response.data;
});
}
}
});
然後,當我想使用的服務,我把它像下面這樣:
rpcService.request('Users.facebookLogin', { token: response.authResponse.accessToken })
.then(function(response) {
debugger;
$rootScope.user = response.user;
console.log($rootScope.user);
$rootScope.loggedIn = true;
$rootScope.$apply();
});
代碼永遠不會獲取調試後線;實際上,代碼根本不會生成$http
請求。出於某種原因,它會停止並且不會繼續回調...或承諾...我對技術差異有點困惑。 :)
這就是說,我已經測試POST調用$.ajax
和一切正常返回,所以一些關閉我的Angular代碼。
而實際上觸發請求,並與$.ajax
工作代碼:
'use strict';
angular.module('xxx')
.factory('rpcService', function ($http) {
return {
request: function (method, params, callback) {
var service = method.split('.');
params = params || {};
params.method = service[1];
$.ajax('/services/' + service[0] + '.sjs', {
type: 'POST',
dataType: 'json',
data: params,
success: function(data, status, xhr) {
if (callback) {
callback(data);
}
}
});
}
}
});
我只是不清楚爲什麼XHR請求沒有正在取得進展。
可能大家分享完成的代碼,併成立了plunker請 –
可惜我不能設置此一plunker,但讓我添加一些更多的代碼。 – dmackerman