Tôi thích sử dụng một nhà máy để lấy dữ liệu từ tài nguyên của mình.
.factory("SweetFactory", [ "$http", "$q", "$resource", function( $http, $q, $resource ) {
return $resource("/sweet/app", {}, {
"put": {
method: "PUT",
isArray: false
},"get": {
method: "GET",
isArray: false
}
});
}]);
Sau đó trưng bày mô hình của tôi trong dịch vụ như thế này tại đây
.service("SweetService", [ "$q", "$filter", "$log", "SweetFactory",
function ($q, $filter, $log, SweetFactory) {
var service = this;
//Object that may be exposed by a controller if desired update using get and put methods provided
service.stuff={
//all kinds of stuff
};
service.listOfStuff = [
{value:"", text:"Please Select"},
{value:"stuff", text:"stuff"}];
service.getStuff = function () {
var deferred = $q.defer();
var promise = SweetFactory.get().$promise.then(
function (response) {
if (response.response.result.code !== "COOL_BABY") {
deferred.reject(response);
} else {
deferred.resolve(response);
console.log("stuff is got", service.alerts);
return deferred.promise;
}
}
).catch(
function (error) {
deferred.reject(error);
console.log("failed to get stuff");
}
);
promise.then(function(response){
//...do some stuff to sett your stuff maybe fancy it up
service.stuff.formattedStuff = $filter('stuffFormatter')(service.stuff);
});
return service.stuff;
};
service.putStuff = function () {
console.log("putting stuff eh", service.stuff);
//maybe do stuff to your stuff
AlertsFactory.put(service.stuff).$promise.then(function (response) {
console.log("yep yep", response.response.code);
service.getStuff();
}).catch(function (errorData) {
alert("Failed to update stuff" + errorData.response.code);
});
};
}]);
Sau đó, bộ điều khiển của tôi có thể bao gồm nó và phơi bày nó hoặc thực hiện những gì nó rơi đúng trong bối cảnh của nó chỉ bằng cách tham chiếu Dịch vụ được tiêm.
Có vẻ làm việc ok. Nhưng tôi là người mới đến góc cạnh. * xử lý lỗi chủ yếu là bỏ qua cho rõ ràng
return $q.when(Cache[id])
. Dù sao đi nữa, điều này sẽ hoạt động và gọi lại cuộc gọi mỗi lần vì bạn đang tạo ra những lời hứa mới mỗi lần.