Как объявить угловой контроллер в метеоре?

Я нахожусь в мире angular с нескольких месяцев, и я всегда создавал свои контроллеры так, чтобы:

Сначала я создаю angular.module:

angular.module("dummyApp", ['some-directive']).config(...).run(...);

После того, как я могу создать контроллер в этом модуле:

angular.module("dummyApp").controller("dummyCtrl", function($scope) { 
   // some logic here
});

(Соответствующий HTML находится на месте).

Теперь я начинаю с метеора и углового вместе. И когда я пытаюсь объявить контроллер, ошибка (и я знаю, что это значит):

Uncaught Ошибка: [$ инжектор:nomod] Модуль 'dummyApp' не доступен! Вы либо неправильно написали имя модуля, либо забыли загрузить его. При регистрации модуля убедитесь, что вы указали зависимости в качестве второго аргумента.

как же я это делаю в метеоре? Я пробую это и много вариантов с одинаковым результатом. Может быть, я не использую $meteor? Синтаксис ControllerAs?

Меня расстраивает, что что-то так легко занимает мое время.

Обновить

Index.html

<body ng-app="EyEnsure">
  <div class="container">
<!-- Navbar goes here -->
<!-- Navbar goes here -->
<nav>
  <div class="nav-wrapper">
    <a href="#!" class="brand-logo">Logo</a>
    <a href="#" data-activates="mobile-demo" class="button-collapse"><i class="material-icons">menu</i></a>
    <ul class="right hide-on-med-and-down">
      <li><a ui-sref="Map">Map</a></li>
    </ul>
  </div>
</nav>

<!-- Page Layout here -->
<div class="section card-panel teal lighten-2">
  <!-- Aquí se insertan las vistas -->
  <div ui-view></div>
</div>
<!-- end layout -->

Main.js:

angular.module("EyEnsure", ['angular-meteor', 'ui.router', 'uiGmapgoogle-maps'])
    .config(function($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise("/");
        $stateProvider
            .state('Home', {
                url: "/",
                template: UiRouter.template('main.html')
            })
            .state("Map", {
                url: "/map",
                template: UiRouter.template('map.html'),
                //controller: 'mapCtrl', // I tried this..
                //controllerAs: 'map'
            })
    }); 

Посмотрите, где я хотел бы показать карту Google:

<template name="map.html">

<div ng-controller="mapCtrl">-->
<h1 class="center-align">Map to EyEnsure</h1>
{{tittle}}
<div class="party-details-maps">
  <div class="angular-google-map-container">
    <ui-gmap-google-map center="party.location || map.center"
                        events="map.events" zoom="map.zoom">
    </ui-gmap-google-map>
  </div>
</div>
</div>

MapController.js:

angular.module("EyEnsure")
    .controller('mapCtrl', function($scope) {
        $scope.tittle = "Hello!";
        $scope.map = {
            center: {
                latitude: 45,
                longitude: -73
            },
            zoom: 8,
            events: {}
        };
    });

На всякий случай мои пакеты установлены в .meteor/packages:

meteor-platform
urigo:angular
angularui:angular-ui-router
netanelgilad:ng-cordova
angular:angular-material
materialize:materialize
urigo:angular-ui-router
angularui:angular-google-maps

1 ответ

Решение

Вопрос не в том, как объявить угловой контроллер, а в том, как метеор загружает файлы.

Мой менеджер js для создания углового приложения был в неправильном каталоге. Поэтому я положил в clint/lib,

Причина здесь.

Другие вопросы по тегам