2016-11-02 5 views
1

Вот мой сценарий:

  • файл A.js, которые определяют основной модуль.
  • файл B.js ленивый (после углового бутстрапа), который содержит контроллер и некоторые директивы.

файл A.js:

var APP = angular.module('app.hello', ['ui.router', 'ngAnimate', 'ngTable', 'ngSanitize', 'ngCsv']); 

(function() { 

    APP.config(function ($controllerProvider, $compileProvider) { 
    APP.loadController = $controllerProvider.register; 
    APP.loadDirective = $compileProvider.directive; 
    }); 

})(); 

файл B.js:

(function() { 
    "use strict"; 

    APP.loadController("dynamicDemoController", dynamicDemoController); 
    dynamicDemoController.$inject = ["NgTableParams", "ngCsv"]; // <-- err 

    function dynamicDemoController(NgTableParams, CSV) { 
    // ... 
    } 

})(); 

Я инъекционного NgTableParams безотказно, но я не в состоянии «впрыснуть "ngCsv модуль, и я получаю эту ошибку в консоли:

Error: [$injector:unpr] Unknown provider: ngCsvProvider <- ngCsv <- dynamicDemoController

Любая идея, что мне, возможно, не хватает?

ответ

2

Вы пытаетесь ввести модуль в свой controller, поэтому его вызывающая ошибка.

dynamicDemoController.$inject = ["NgTableParams", "ngCsv"]; // <-- err 

ngCsv является module и не service.

Загрузка модуля должна быть ограничена angular.module.

var myapp = angular.module('myapp', ['ngCsv']) 
+0

Что может быть решением тогда? Ссылаясь на документацию ngCsv, ngCsv должен выставить «сервис»: https://github.com/asafdav/ng-csv/wiki/Using-CSV-as-Service, и они используют его на контроллере. –

+1

Просто введите CSV ... не ngCsv ... когда вы загружаете модуль ngCsv, вы также получаете службу CSV. – Thalaivar

+1

модуль поддерживает эту службу, https://github.com/asafdav/ng-csv/blob /master/src/ng-csv/services/csv-service.js – Thalaivar

Смежные вопросы