Angular 服务:将响应分配给对象是不是一种不好的做法,还是应该只使用 solve
Angular services: is it bad practice to assign response to an object or should I only use resolve
我已经看到了这段代码,它对我有用,但我想知道在服务中创建一个对象是否是一种不好的做法 - 将其分配给这个对象,然后在 http get 方法的成功回调中将响应分配给对象。
.service("personDataService", function($http, $q) {
var person = this;
person.record = {};
var endPoint = 'https://api.something.com';
person.getInformation = function() {
var defer = $q.defer();
$http.get(endPoint)
.success(function(response) {
/*
here i'm assigning response to person.record and also using resolve.
but is this bad practice to assign response directly to person?
*/
person.record = response;
defer.resolve(response);
})
.error(function(err, status) {
defer.reject(err);
})
return defer.promise;
}
return person;
}
然后在我的控制器代码中,我直接调用personDataService.record来检查它是否为空。
即
Object.keys(personDataService.record).length
直接使用 personDataService.album 是不是很糟糕?
最好不要将响应分配给对象以使用控制器内部的方法并将响应传递到那里。您要做的另一件事是删除已弃用的$http旧承诺方法成功和错误,并使用标准 then 方法。这是如何使用 then 方法的示例。
angular.module('starter')
.factory('services', services);
function services($http) {
var services = {
someService: someService,
};
return services;
//someService service
function someService() {
var req = {
method: 'GET',
url: 'https://api.something.com',
headers: {
'Accept' : 'application/json',
'contentType': "application/json"
}
};
return $http(req);
};
}
然后从控制器调用服务,如下所示:
services.someService().then(
function(response) {
//do whatever is needed with the response
console.log(response);
},
function (error) {
console.log(error);
}
);
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 有没有一种方法可以从URL跟踪请求的域
- 有没有一种方法可以列出Ember.Object的所有绑定
- 有没有一种方法可以获得three.js的最小/lite版本
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- 只能存储一种类型的对象的数组
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- 有没有一种方法可以在Javascript中进行可变递归currying
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- Angular 服务:将响应分配给对象是不是一种不好的做法,还是应该只使用 solve