2016-07-13 5 views
2

here 두 가지 솔루션을 사용해 보았습니다. 내 응용 프로그램 구성앵귤러 컨트롤러에 Underscore.js 주입

var underscore = angular.module('underscore', []); 
 
underscore.factory('_', ['$window', function() { 
 
    return $window._; 
 
}]);
여기

은 다음과 같습니다 : 여기

angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module flavorApplication due to: Error: [$injector:unpr] Unknown provider: underscore

모듈 내 코드입니다 :

내 오류입니다

여기

나는 당신에 주입 $window 의존성을 놓친

(function() { 
 
    'use strict'; 
 

 
    angular 
 
     .module('flavorApplication') 
 
     .controller('UsedSearchesController', UsedSearchesController); 
 

 
    UsedSearchesController.$inject = ['$stateParams', '$state', 'DataService', '_']; 
 
    function UsedSearchesController($stateParams, $state, DataService, _) { 
 
     var vm = this; 
 
     vm.currentSearches = $stateParams.search.split("|") 
 

 

 
     activate(vm); 
 

 
     //////////////// 
 

 
     function activate(vm, _) { 
 
      vm.removeSearch = function (searchTerm) { 
 
       $stateParams.search = _.filter(vm.currentSearches, 
 
       function(search){return search !== searchterm}).join("|") 
 
       $state.go('home'); 
 
      } 
 
     } 
 
    } 
 
})();

답변

3

(내가 잘못 갈거야 아마)는 컨트롤러에 주입하기 위해 노력하고있어 당신 공장

underscore.factory('_', ['$window', function($window) { 

factory/service 각도의 구성 단계에서 사용할 수있는 싱글 톤 개체를 얻을 수없는 다른 개체가 있으면 해당 개체를 얻을 수 없습니다.

//remove 'underscore' dependency from config phase like below. 
angular.module("flavorApplication").config(['$stateProvider', '$urlRouterProvider', '$locationProvider', 
    function ($stateProvider, $urlRouterProvider, $locationProvider){ 

또한, 당신은 activate 함수에서 매개 변수로 가장 중요한

function activate(vm) { //<-- remove _ from here 

Don't forget to inject underscore module to flavorApplication module so that would make available _ object throughout application modules & components.

angular.module("flavorApplication", 
['ui.bootstrap', 
    'ui.router', 
    'angular-loading-bar', 
    'angular-confirm', 
    'underscore' //<-- added underscore module here 
]); 
+1

하지만를 _을 추가 할 필요가 없습니다, 그는'의존성으로 underscore' 모듈을 추가하는 것을 잊었다 'flavorApplication' 모듈. – dfsq

+0

@dsfq 헤드 업 형제님께 감사 드리며 그 점을 –

+0

@dfsq 대답에 추가하십시오. Pankaj가 $ 윈도우를 추가하지 않았다. – chrissavage