对不起初学者的问题,如何让工厂有另一家工厂?我需要食物数据链接到餐馆(就像一对多的关系)。
这是我的代码:
.factory('Foods', function() {
var foods = [{
id: 1,
name: 'Food 1',
price: '$12',
category:'Appetizer',
imageSrc: 'img/new_food1.jpg',
restaurant:Restaurants.get(1),
}];
return {
all: function() {
return foods;
},
remove: function(food) {
foods.splice(foods.indexOf(food), 1);
},
get: function(foodId) {
for (var i = 0; i < foods.length; i++) {
if (foods[i].id === parseInt(foodId)) {
return foods[i];
}
}
return null;
}
};
})
这是我的餐馆代码工厂:
.factory('Restaurants', function() {
var restaurants = [{
id: 1,
name: 'Restaurant 1',
imageSrc: 'img/resto1.jpg'
}];
return {
all: function() {
return restaurants;
},
remove: function(restaurant) {
restaurants.splice(restaurants.indexOf(restaurant), 1);
},
get: function(restaurantId) {
for (var i = 0; i < restaurants.length; i++) {
if (restaurants[i].id === parseInt(restaurantId)) {
return restaurants[i];
}
}
return null;
}
};
});
但这会导致数据错误。如何使数组具有对象值(餐厅)?感谢...
答案 0 :(得分:0)
服务可能需要其他服务。您可以使用带有服务名称的参数来使用Angular自动注入:
.factory('Foods', function(Restaurants) {
// ...
Restaurants.get(42);
// ...
});