2013-09-04 4 views
0

Я пытаюсь убрать свои ноги с земли с помощью Йомен + Угловая и пройти через учебные пособия, я не могу получить даже самые основные директивы для стрельбы, даже когда я их точно пытаюсь так же, как в учебниках.Yeoman Angularjs Как внедрить директиву

Может кто-то пожалуйста, одолжить некоторое представление о том, что я пропускаю, я боролся с этим в течение последних 2-х дней


HTML шаблон - нг изменение размера является директива предназначена

<body ng-app="mvmdApp"> 
.... 
<div ng-mousemove="onMouse($event)" ng-resize="" class="youtube-cover ng-scope"> 
    <div class="youtube-unit"></div> 
</div> 


// controllers/youtube.js 
'use strict'; 
angular.module('mvmdApp').controller('YoutubeCtrl', function($scope) { 
    console.log('hi');// fires 

    return $scope.onMouse = function(e) {}// fires 


// directives/resize.js 
'use strict'; 
angular.module('mvmdApp', []).directive('ngResize', function($window) { 
    return function(scope) { 
    return console.log('directive');// does not fire 
    }; 
}); 

Странно то, что всякий раз, когда я даже вызываю angular.module('mvmdApp', []), так что из сценария директивы он блокирует представление из рендеринга.

Редактировать: Также я заметил, что когда я загружаю директиву перед всеми другими скриптами, он не блокирует html из рендеринга, но он все равно не вызывает директиву. Я не знаю, имеет ли смысл порядок загрузки угловых скриптов, поскольку я не знаю, где его найти.

+0

Не могли бы вы создать скрипт Plunker с кодом? –

+0

Я не понимаю, что не так с угловой библиотекой plunkers, но вот в основном это. Я использую coffeescript, стилус и нефрит, но вот скомпилированный код http://plnkr.co/edit/YHXOvbY33x2lcjotNxUX?p=preview –

ответ

0

Это не может решить ваш вопрос, но одна ошибка я вижу

angular.module('mvmdApp', []) был объявлен в нескольких местах, resize.js и app.js. Это объявление формата каждый раз создает новый модуль с этим именем.

Это следует вызывать один раз только из приложения. В resize.js это должно быть angular.module('mvmdApp')

+1

Спасибо, что меня отбросило, так это то, что генератор йома определил angular.module() дважды, один раз в app.js и один раз в контроллере main.js, который заставило меня поверить, что это одноэлементный шаблон –

+0

, вы можете обновить свой вопрос с помощью этого комментария, это упростит для будущих читателей. – Voles

1

Вы объявляете модуль несколько раз. Вы можете упростить это, выполнив следующие действия:

В app.js:

'use strict'; 

var myApp = angular.module("mvmdApp", []); 

myApp.config(function($routeProvider, $locationProvider) { 
    ... 
}); 

В youtube.js:

'use strict'; 
myApp.controller('YoutubeCtrl', function($scope) { 
    ... 
}); 

An в resize.js:

'use strict'; 

myApp.directive('resize', function($window) { 
    ... 
}); 

Обновленный плункер на http://plnkr.co/edit/Im4SpcyH4cIem6TDWZaG?p=preview. Кроме того, я бы воздержался от вызова директивы «ng-resize», поскольку префикс ng обычно используется угловой командой. В этом случае директива просто «изменяет размер».

+0

Спасибо, в моем случае с кофейным скриптом, который бросает все в свой собственный IIFE, мне пришлось определить window.myApp = angular() ... и переопределить его в каждом скрипте, но это, похоже, устранило проблему, спасибо –

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