我应该在angularjs中使用 $ http 吗? 在控制器或服务中? 我已经在服务中实现了它,但是我想在应用程序的开头不执行,我想在一些用户操作后执行,这可能在服务中吗?
'use strict';
/* Services */
// Demonstrate how to register services
// In this case it is a simple value service.
angular
.module('myApp.services')
.service(
'RestService',
function($http, $log) {
this.getERPProfile = function() {
var request = request;
request = JSON.stringify(request);
$http(
{
url : url,
method : "POST",
headers : {
'Accept' : 'text/xml',
'Content-Type' : '"text/xml; charset=\"utf-8\""'
},
dataType : 'xml',
data : request
}).success(
function(data, status, headers, config) {
var v1 = data;
return data;
$log.log(v1);
}).error(
function(data, status, headers, config) {
var v2 = status;
return data;
$log.log(v2);
});
};
并且有人提供有关工厂和服务差异的良好文档吗? angulajs网站并没有帮助我理解。
感谢您的帮助!
答案 0 :(得分:1)
服务首次实例化,第一次调用它们。例如,它们用于共享逻辑并在控制器之间公开数据。控制器是视图和模型之间的粘合剂,就像在任何MVC框架中一样。
在应用程序启动时运行它与从控制器或服务执行$ http请求无关。如果需要,请提供http请求。
请注意,当angular找到<div ng-controller=whatever>...
时,控制器会被实例化。如果你的http请求在那里,它将被触发。几周之前有一个similar question about services and factories,另一个关于injecting a service in a controller。