2015-12-29 74 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); 
});