2015-08-25 1 views
2

Я в мире углового со времени нескольких месяцев, и я всегда инстанцирован своими контроллерами, такая, что:Как объявить угловой контроллер в метеор?

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

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

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

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

(Соответствующий html на месте).

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

Uncaught Error: [$injector:nomod] Module 'dummyApp' 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.

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

Это разочаровывает меня в том, что что-то очень легкое не торопится.

Update

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 Map:

<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 
+0

К сожалению, я не мог воспроизвести проблему (см [угловой метеор демо] (https://github.com/MatthiasEckhart/angular-meteor-demo)). Не могли бы вы предоставить [минимальный пример] (http://stackoverflow.com/help/mcve) или поделиться репозиторием, который воспроизводит проблему? –

+0

Я обновил свой вопрос, спасибо за ваш интерес. – robBerto

ответ

1

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

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

Причина в том, here.