如何在服务中使用参数+依赖注入

时间:2015-12-29 01:06:44

标签: javascript angularjs dependency-injection

这是我想要做的事情

    (function(){angular.module('app').factory("loadDataForStep",ls);
        ls.$inject = ['$scope','stepIndex']
        function ls ($scope, stepIndex) {
            if ($routeParams.code != undefined) {
                $scope.code = $routeParams.code;
                $scope.retrieveData($routeParams.code);
            }
            $rootScope.stepIndex = stepIndex-1;
            $rootScope.currentStep = stepIndex;
            $rootScope.resultsLoaded = false;
            if (!fieldDefinitionsLoaded) {
                loadAllElementsDefinition();
                loadStepsWithOverrides(stepIndex, loadStep);
            } else {
                loadStep(stepIndex);
            }
    }
    })();

我知道这里有很多问题,但是当下的问题(问题)是我如何获得$ scope注入并将步骤索引作为参数传递?如您所见, $ scope需要来自angular,但我需要提供stepIndex。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

服务没有范围所以不能在工厂注入范围。

Scope是控制器的一个实例。

如果您想在工厂中处理范围对象,则在工厂中声明变量,然后将工厂与范围变量绑定。

然后尝试像这样

var app = angular.module("app",[]);
app.factory("mySvc",function(){

  return {
    dataList : []
  }

});

app.controller("myCtrl",function($scope,mySvc){
   $scope.model=mySvc;
   console.log($scope.model);
});