2016-09-15 6 views
2

Угловая версия 1.5.8.AngularJS определить контроллер компонента

Вот упрощенный код моего HTML страницы:

<body> 
    <div ng-app="identicaApp"> 
     <div id="navbar_wrapper"> 
      <navbar-component></navbar-component> 
     </div> 
     <div id="register_player_wrapper"> 
      <register-player></register-player> 
     </div> 
    </div> 
    <script src="/static/angular/identica/identica.js"></script> 
    <script src="/static/angular/identica/common.js"></script> 
    <script src="/static/angular/identica/navbar/navbar.module.js"></script> 
    <script src="/static/angular/identica/navbar/navbar.component.js"></script> 
    <script src="/static/angular/identica/registration/register_player/register-player.module.js"></script> 
    <script src="/static/angular/identica/registration/register_player/register-player.component.js"></script> 
</body> 

Navbar правильно загружается, но регистр-проигрыватель компонента не загружается вообще, без каких-либо ошибок. Вот код регистра-player.component.js:

angular.module('identicaApp.registration.player', ['identicaApp.common']) 
    .component('registerPlayer', { 
     templateUrl: '/static/angular/identica/registration/register_player/register_player.html', 
     controller: ['$resource', '$http', 'geolocationProvider', function RegisterPlayerController($resource, $http, geolocationProvider) { 
      // logic here 
     }] 
    }); 

Я попытался определить контроллер внутри

<div id="navbar_wrapper" ng-controller="RegisterPlayerController"> 

или

<navbar-component ng-controller="RegisterPlayerController"></navbar-component> 

, но в этом случае угловых рывками с ошибкой Argument 'RegisterPlayerController' is not a function, got undefined. Буду благодарен за любую помощь.

+0

Почему вы пытаетесь добавить контроллер 'component's' через' ng-controller'? Я имею в виду, для чего? Почему вам нужно добавить его где-то снаружи? – Kindzoku

+0

@ Kindzoku просто пытается что-то сделать, чтобы заставить его работать – Compadre

+0

Использовать 'controllerAs' и внутри' register_player.html' просто использовать его – taguenizy

ответ

0

Возможно, что модуль 'identicaApp.registration.player' не используется в вашем основном контроллере в качестве входа. Для Exmaple. angular.module ('identicaApp', ['identicaApp.registration.player'])

Попробуйте это и обновите свою страницу, она должна работать нормально.

+0

Вот и все, я не мог понять, почему я должен объявить, что больший модуль зависит от меньшего – Compadre

+0

. Имя базового модуля - «identicaApp» (как показано в приведенном выше коде ng-app = «identityApp») Теперь, если мы хотим использовать любые другой модуль (как бы он ни был значительным) в нашем базовом приложении. Затем нам нужно ввести это в наш базовый модуль, иначе он не будет идентифицировать ни одного из его компонентов . Пример: здесь RegisterPlayerController не определен. RegisterPlayerController - , определенный внутри moduel 'identicaApp.registration.player' Точка в том, что просто вводить имя контроллера недостаточно, нам нужно ввести его модуль в наш базовый модуль. –

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