Comment inclure / injecter des fonctions qui utilisent $ scope dans un contrôleur dans angularjs?

Je suis en train d'essayer d'inclure une bibliothèque de fonctions, tenue dans une usine, dans un contrôleur.
Semblables à des questions de ce genre:
Créer des fonctions de contrôleur

Mon contrôleur principal ressemble à ceci:

recipeApp.controller('recipeController', function ($scope, groceryInterface, ...){

$scope.groceryList = [];
//...etc...    

/* trying to retrieve the functions here */
$scope.groceryFunc = groceryInterface; //would call ng-click="groceryFunc.addToList()" in main view
    /* Also tried this:
    $scope.addToList = groceryInterface.addToList();
    $scope.clearList = groceryInterface.clearList();
    $scope.add = groceryInterface.add();
    $scope.addUp = groceryInterface.addUp(); */
}

Puis, dans un autre .fichier js, j'ai créé l'usine groceryInterface. J'ai injecté de cette usine dans le contrôleur ci-dessus.

Usine

recipeApp.factory('groceryInterface', function(){

        var factory = {};

    factory.addToList = function(recipe){
        $scope.groceryList.push(recipe);
                    ... etc....
    }

    factory.clearList = function() {
            var last = $scope.prevIngredients.pop();
            .... etc...
    }

    factory.add = function() {
    $scope.ingredientsList[0].amount = $scope.ingredientsList[0].amount + 5;
    }

    factory.addUp = function(){
        etc...
    }

    return factory;
});

Mais dans ma console, je reçois des ReferenceError: $scope is not defined
at Object.factory.addToList
, etc.
Évidemment, je devine que cela a à voir avec le fait que je suis en utilisant $scope dans mes fonctions au sein de l'usine. Comment puis-je résoudre ce problème? J'ai remarqué que dans beaucoup d'autres exemples que j'ai regardé, personne n'a jamais utilise $scope au sein de leur usine de fonctions. J'ai essayé d'injecter $scope comme un paramètre dans mon usine, mais que la plaine n'a pas de travail. (par exemple,recipeApp.factory('groceryInterface', function(){ )

Toute aide est très apprécié!

source d'informationauteur LazerSharks