下面是一个包含一些http请求的模型。我的问题是,我可以通过实例化一个新的类对象来实例化服务吗?
export class DbHttp {
private path:string;
constructor(private path:string, private customService:CustomService){}
create(data:Object):Observable<Response>{
return this.customService.create(this.path, data)
}
getAll():Observable<Response>{
return this.customService.getAll(this.path)
}
}
我想要实现的是在自定义网址上执行http请求的快捷方式。理想情况下,语法应该是这样的
public dbAccessTodo = this.service.access('todo')
//access is a method which returns an object with builtin CRUD functions for a Base_Url+'todo'
create(data){
this.dbAccessTodo.create(data)
}
谢谢!
答案 0 :(得分:0)
我不确定你想要达到的目标。
我创建了这样的服务:
'use strict';
angular.module('recipe').factory('RecipeService', [ '$resource',
function ($resource) {
// Recipe service logic
var Recipe = $resource('api/recipes/:recipeId', {
recipeId: '@_id'
}, {
update: {
method: 'PUT'
}
});
angular.extend(Recipe.prototype, {
createOrUpdate: function () {
var recipe = this;
return createOrUpdate(recipe);
}
});
function createOrUpdate(recipe) {
if(recipe._id) {
return recipe.$update(onSuccess, onError);
} else {
return recipe.$save(onSuccess, onError);
}
function onSuccess(recipe) {
}
function onError(errorResponse) {
var error = errorResponse.data;
handleError(error);
}
}
function handleError(error) {
console.log(error);
}
// Public API
return Recipe;
}
]);
要更改我的api的基本URL,我使用CustomRequestOptions
@Injectable()
export class OrderService {
private endPoint = 'Orders';
constructor(private http: Http) { }
get(id: string) {
return this.http
.get(`'${this.endPoint}/${id}`, { body: '' })
.map(res => res.json());
}
希望这有帮助,否则,请更详细地解释您的问题。