Ionic Angular Js Factory服务,工厂有另一家工厂

时间:2015-09-29 15:25:23

标签: javascript angularjs mobile ionic

对不起初学者的问题,如何让工厂有另一家工厂?我需要食物数据链接到餐馆(就像一对多的关系)。

这是我的代码:

.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;
    }
  };
});

但这会导致数据错误。如何使数组具有对象值(餐厅)?感谢...

1 个答案:

答案 0 :(得分:0)

服务可能需要其他服务。您可以使用带有服务名称的参数来使用Angular自动注入:

.factory('Foods', function(Restaurants) {
    // ...
    Restaurants.get(42);
    // ...
});