2015-05-14 3 views
0

Я знаю, что этот вопрос уже задан, но я не смог найти ответ на мой личный случай. Я уверен, что это глупая вещь, которую я не заметил, но я не выхожу из нее.AngularJS: Не удалось создать ошибку модуля

Я напишу весь код, который у меня есть (это не так уж много), потому что я не могу найти реальное происхождение ошибки.

Это мой app.js файл:

'use strict'; 

var myApp = angular.module('myApp', [ 
    'ngRoute', 
    'appControllers' 
]); 

myApp.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/faq', { 
    templateUrl: 'faq/faq.html', 
    controller: 'FaqCtrl' 
    }). 
    when('/log', { 
    templateUrl: 'log/log.html', 
    controller: 'LogCtrl' 
    }). 
    [...] 
    when('/settings', { 
    templateUrl: 'settings/settings.html', 
    controller: 'SettingsCtrl' 
    }). 
    otherwise({redirectTo: '/homepage'}); 
}]); 

В то время как здесь, где я держу мои контроллеры, controllers.js:

'use strict'; 

/* Controllers */ 

var appControllers = angular.module('appControllers', []); 

appControllers.controller('FaqCtrl', [function() { 

}]); 

appControllers.controller('HomepageCtrl', [function() { 

}]); 

[...] 

appControllers.controller('SettingsCtrl', function($scope, $http) { 
/* 
    $scope.myData = {}; 
    $scope.myData = function(item, event) { 

    var response = $http.get("myURL"); 

    response.success(function() { 

     alert("ok"); 
    }); 

    response.error(function() { 

     alert("error"); 
    }); 
*/ 
}); 

А вот settings.html:

<div ng-controller="SettingsController" > 
    <button ng-click="myData.doClick(item, $event)">Send AJAX Request</button> 
    <br/> 
    Data from server: {{myData.fromServer}} 
    </div> 

Теперь, если я запустил его с кодом внутри SettingsCtrl, он отлично работает, но если я его разложил, страница не заканчивается (даже если я не перейду в раздел «Настройки»), и ошибка такова:

Error: [$injector:modulerr] Failed to instantiate module myApp due to: 
[$injector:modulerr] Failed to instantiate module appControllers due to: 
[$injector:nomod] Module 'appControllers' 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. 

Что я пропустил?

Я уверен, что это будет глупая вещь, но я новичок с AngularJS.

Заранее спасибо.

+0

Вы ошиблись здесь, или функция (элемент, событие) отсутствует "};" в конце? –

+0

Это было, спасибо! – prtnkl

ответ

0

Когда вы раскомментировать фигурные скобки не закрыты должным образом.

appControllers.controller('SettingsController', function($scope, $http) { 

    $scope.myData = {}; 
    $scope.myData = function(item, event) { 

    var response = $http.get("myURL"); 

    response.success(function() { 

     alert("ok"); 
    }); 

    response.error(function() { 

     alert("error"); 
    }); 
    } 
}); 

http://plnkr.co/edit/4sltz2Bwai9zm9FLkyC7?p=preview

Еще один вопрос, имя контроллера не соответствует, но вы, вероятно, понял это уже.

+0

Спасибо, как и каждый раз, когда мне было интересно, чего я не понял, и это были только скобки. – prtnkl

0

Похоже, вы не включили файл контроллера в вашем index.html

0

вы потеряли «}»

appControllers.controller('SettingsCtrl', function($scope, $http) { 
    $scope.myData = {}; 
    $scope.myData = function(item, event) { 
    var response = $http.get("myURL"); 
    response.success(function() { 
     alert("ok"); 
    }); 
    response.error(function() { 
     alert("error"); 
    }); 
    } 
}); 
+0

Спасибо. Это всегда заканчивается так. – prtnkl

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