2016-03-11 2 views
3

Так что я не знает, почему эта ошибка возвращается при обслуживании моего проекта

Uncaught Error: [$injector:nomod] Module 'items.controller' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

Я чувствую, как мысли, я смотрел на это для слишком долго, и я до сих пор не могу сказать, чего не хватает. Что мне здесь не хватает?

Моей файловая структура выглядит следующим образом ...

file structure

Внутри моего items.controller.js

(function() { 
    'use strict'; 

    angular 
    .module('items.controller') 
    .controller('ItemDetailsController', ItemDetailsController); 

    function ItemDetailsController($state, $timeout, $stateParams, itemsDataService) { 
    var vm = this; 
    vm.showItemDetails = showItemDetails; 
    vm.item = itemsDataService.getById($stateParams.id); 

    $state.$current.data.pageSubTitle = vm.item.title; 

    function showItemDetails(id) { 
     $state.go('itemDetails', {id: id}); 
    } 
    } 
})(); 

и мой items.module.js содержит ...

(function() { 
    'use strict'; 

    angular 
    .module('items', [ 
     'items.controller', 
     'items.service' 
    ]); 

    angular.module('items.controller', []); 
    angular.module('items.service', []); 

})(); 

и в пределах моих items.route.js файл:

(function() { 
    'use strict'; 

    angular 
    .module('items') 
    .config(routerConfig); 

    function routerConfig($stateProvider) { 
    $stateProvider 
     .state('itemDetails', { 
     url: '/product/:id', 
     templateUrl: 'items/itemDetails.html', 
     controller: 'ItemDetailsController', 
     controllerAs: 'itemDetails' 
     }) 
    } 

})(); 

и, наконец, в моем файле index.module.js:

import { config } from './index.config'; 
import { routerConfig } from './index.route'; 
import { runBlock } from './index.run'; 
import { MainController } from './main/main.controller'; 
import { ItemDetailsController } from '../app/components/items/items.controller'; 
import { GithubContributorService } from '../app/components/githubContributor/githubContributor.service'; 
import { WebDevTecService } from '../app/components/webDevTec/webDevTec.service'; 
import { NavbarDirective } from '../app/components/navbar/navbar.directive'; 
import { MalarkeyDirective } from '../app/components/malarkey/malarkey.directive'; 

angular.module('productsFind', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngMessages', 'ngAria', 'ngRoute', 'toastr']) 
    .constant('malarkey', malarkey) 
    .constant('moment', moment) 
    .config(config) 
    .config(routerConfig) 
    .run(runBlock) 
    .service('githubContributor', GithubContributorService) 
    .service('webDevTec', WebDevTecService) 
    .controller('MainController', MainController) 
    .controller('ItemDetailsController', ItemDetailsController) 
    .directive('acmeNavbar', NavbarDirective) 
    .directive('acmeMalarkey', MalarkeyDirective); 

Где я не смог загрузить его? Спасибо заранее за вашу помощь. :)

+1

вы уверены, что все ваши файлы 'JavaScript' загружаются в ваш HTML-документ? Вы проверили источник HTML в браузере? Вы также можете попытаться зарегистрировать модуль, прежде чем принимать на себя зависимость. Переместите 'angular.module ('items.controller'' над' angular.module (' items ') 'строка – Dieterg

+0

Должен ли я предположить, что у вас есть' ng-app =' productsFind'' где-то в вашем index.html? – slackmart

+0

@slackmart да его там – Modelesq

ответ

4

Вам нужно добавить строку import '../app/components/items/items.module'; перед тем import { ItemDetailsController } from '../app/components/items/items.controller'; в файле index.module.js, это потому, что вы загружаете модули с синтаксисом ES2015

позже вам нужно сделать, как @slackmart ранее сказал в своем ответ: добавление модуля items к модулю productsFind

angular.module('productsFind', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngMessages', 'ngAria', 'ngRoute', 'toastr', 'items'])

+0

извините за мой английский:/ –

+0

Leon, ваш английский потрясающий!: D – Modelesq

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