Я новичок в Угловое, и, возможно, я не понимаю все об обещании, так что ... У меня есть ресурс заводУгловая неопределенное обещание
.factory('Product',["$resource", function ($resource){
var Resource = $resource(
"/api/product/:product_id/",
{product_id: '@id'},
{
query: {
isArray: true,
transformResponse: function (data) {
var items = angular.fromJson(data);
return items.results;
}
},
update: {
method: "PUT",
}
},
{
stripTrailingSlashes: false
}
);
И в моем другом заводе.
.factory('Get',["$http", "Product", function ($http, Product){
return {
getDesc: function(id){
var allProducts = Product.query();
var products = [];
for (var i = 0; i < allProducts.length; i++){
if(allProducts[i].desc == id){
products.push(allProducts[i]);
}
}
return products;
}
}
}])
И в моем контроллере
$scope.someClick = function(product){
var products = Get.getDesc(product.id);
products.$promise.then(function(data){
$log.log(data);
});
};
И я получил: Ошибка. Г $ обещание не определено я не знаю, почему. Не могли бы вы помочь мне?
Благодарим за ответ. Эта фильтрация будет более сложной. Например, первая модель имеет foreignKey для другой модели, и я буду фильтровать этот FK и т. Д. PS. Что делать, если мне нужно отфильтровать другие данные на этой фабрике, используя эти более ранние данные с фильтрацией (Продукты)? – Jeroj82
В основном, обработчики обещаний привязаны и используются в качестве фильтров/трансформаторов. Возвращаемое значение первого обработчика передается следующему обработчику и так далее. Вот почему важно возвращать значение для каждого обработчика. Сказав, что вы можете реализовать свой логин в обработчиках вашего приложения (перед возвратом обещания). Подумайте о заказе. Вы получаете базовый заказ и должны добавлять различные налоги и издержки: getPrice: function() {return Price.get(). Then (addCommision). Then (addTax). Then (addInsurance); }. Следующий обработчик (.then (myHandler)) увидит сложенную цену – Meir