Как включить / внедрить функции, которые используют $ scope в контроллер в angularjs?
Я пытаюсь включить библиотеку функций, хранящихся на фабрике, в контроллер. Похоже на такие вопросы:Создание общих функций контроллера
мойглавный контроллер выглядит так:
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(); */
}
Затем в другом файле .js я создал фабрику groceryInterface. Я'Я ввел эту фабрику в контроллер выше.
завод
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;
});
Но в моей консоли я продолжаю получатьReferenceError: $scope is not defined at Object.factory.addToList
, так далее. Очевидно, яЯ предполагаю, что это связано с тем, что ям использую$scope
в моих функциях на заводе. Как мне решить это? Я заметил, что во многих других примерах ясмотрел, никто никогда не использует$scope
в рамках своих внешних заводских функций. Я'мы пробовали делать инъекции$scope
в качестве параметра на моем заводе, но это ясно не работает. (например)recipeApp.factory('groceryInterface', function(){
Любая помощь действительно ценится!