将Underscore.js注入Angular Controller

时间:2016-07-13 20:39:19

标签: angularjs underscore.js angular-controller

我尝试了两个解决方案here无济于事。

这是我的错误:

android { ... splits { abi { enable true reset() include 'x86', 'armeabi-v7a', 'mips' universalApk true } } }

以下是我的模块代码:



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




这是我的App配置:



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




我试图将其注入控制器(可能是我出错的地方)



(function(){
  angular.module("flavorApplication",
    ['ui.bootstrap',
        'ui.router',
        'angular-loading-bar',
        'angular-confirm',
        ]);
        angular.module("flavorApplication").config(['$stateProvider', '$urlRouterProvider', '$locationProvider', 
        'underscore', function ($stateProvider, $urlRouterProvider, $locationProvider, underscore){




1 个答案:

答案 0 :(得分:3)

您错过$window依赖注入您的工厂

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
  

不要忘记将underscore模块注入flavorApplication   模块,以便在整个应用程序中提供_对象   模块和组件。

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