2014-10-14 2 views
4

Не могли бы вы помочь мне найти, что не так с этим кодом, он говорит, что «foodFactory не определен». Я все еще изучаю angularjs, поэтому могут быть ошибки, но я пытаюсь использовать маршруты + фабрика.Почему у меня ошибка «фабрика не определена» в angularjs?

var foodApp = angular.module("foodApp", ["ngRoute"]); 

     foodApp.config(function($routeProvider) 
     { 

      $routeProvider 
        .when('/', 
        { 
         controller: 'foodController', 
         templateUrl: '/routes/view1.html' 
        }) 
        .when('/view2', 
        { 
         controller: 'foodController', 
         templateUrl: '/routes/view2.html' 
        }) 
        .when('/view3', 
        { 
         controller: 'foodController2', 
         templateUrl: '/routes/view3.html' 
        }) 
        .otherwise 
        ({ redirectTo: '/' }); 

     }); 

     foodApp.factory("foodFactory", function() 
     { 
      var foods = [ 
       {name: "Bread"}, 
       {name: "Cheese"}, 
       {name: "Blackberries"} 
      ]; 

      var factory = {}; 

      factory.getFoods = function() 
      { 
       return foods; 
      }; 

      return factory; 

     }); 

     var controllers = {}; 

     controllers.foodController = function($scope) 
     { 
      $scope.foods = foodFactory.getFoods(); 
      $scope.foods2 = foodFactory.getFoods(); 
     }; 

     controllers.foodController2 = function($scope) 
     { 
      $scope.foods = foodFactory.getFoods(); 
     }; 

     foodApp.controller(controllers); 

view1.html, view2.html и view3.html - это хорошо, маршруты работают тоже, но он просто не возвращает массив еду от завода.

ответ

6
controllers.foodController = function($scope,foodFactory) // you need to inject foodFactory 
    { 
     $scope.foods = foodFactory.getFoods(); 
     $scope.foods2 = foodFactory.getFoods(); 
    }; 

    controllers.foodController2 = function($scope,foodFactory) // you need to inject foodFactory 
    { 
     $scope.foods = foodFactory.getFoods(); 
    }; 
+0

Большое спасибо, вот и все! –

+0

+1. Это рабочий ответ;) –

Смежные вопросы