2015-12-29 49 views
0

这是我想要做的如何使用参数+依赖注入的服务

(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并将step index作为参数传递?正如你所看到的,$ scope需要来自角度,但我需要提供stepIndex。 任何帮助表示赞赏。

回答

1

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

范围是控制器的一个实例。

如果您想要在工厂处理作用域对象,然后在工厂中声明变量,然后使用作用域变量绑定工厂。

那就试试还挺喜欢这个

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

    return { 
    dataList : [] 
    } 

}); 

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