Yeoman Mean.js сгенерировал пользовательскую директиву AngularJS, которая не работает

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

Контекстная информация
Я пытаюсь реализовать простую пользовательскую директиву для AngularJS. Моя веб-страница построена с использованием шаблона Mean.js. Чтобы сгенерировать пользовательскую директиву для моего модуля Users, я использовал генератор Yeoman, выполнив эту команду:

yo meanjs:angular-directive compareTo

Затем я указал, что хотел бы разместить директиву в моем пользовательском модуле. Это сгенерировало каталог директив с образцом пользовательской директивы. Вот моя структура папок. http://imgur.com/SZvG706 (мне пока не разрешено публиковать изображения, извините)

Проблема
Насколько я понимаю, это может создать атрибут h1 с текстом «это директива compareTo», а также вывести консольное сообщение, но я ничего не вижу и не получаю ошибок в консоль.

Код
Вот сгенерированный файл директивы сравнения. Единственное, что я изменил, это div на h1 в шаблоне и добавил консольное приветственное сообщение.

'use strict';

angular.module('users').directive('compareTo', [
    function() {
        return {
            template: '<h1></h1>',
            restrict: 'E',
            link: function postLink(scope, element, attrs) {
                // Compare to directive logic
                // ...
                console.log('hi');
                element.text('this is the compareTo directive');
            }
        };
    }
]);

Это мой файл signup.client.view.html, в котором я пытаюсь реализовать директиву с помощью тега html сравнения.

<section class="row" data-ng-controller="AuthenticationController">
    <h3 class="col-md-12 text-center">Sign up with you email</h3>
    <compare-to></compare-to>
    <div class="col-xs-offset-2 col-xs-8 col-md-offset-4 col-md-4">
        <form name="userForm" data-ng-submit="signup()" class="signin form-horizontal" novalidate autocomplete="off">
            <fieldset>
                <div class="form-group">
                    <label for="firstName">First Name</label>
                    <input type="text" required id="firstName" name="firstName" class="form-control" data-ng-model="credentials.firstName" placeholder="First Name">
                </div>
                <div class="form-group">
                    <label for="lastName">Last Name</label>
                    <input type="text" id="lastName" name="lastName" class="form-control" data-ng-model="credentials.lastName" placeholder="Last Name">
                </div>
                <div class="form-group">
                    <label for="organization">Organization Name</label>
                    <input type="text" id="organization" name="organization" class="form-control" data-ng-model="credentials.organization" placeholder="Organization Name">
                </div>
                <div class="form-group">
                    <label for="position">Position Title</label>
                    <input type="text" id="position" name="position" class="form-control" data-ng-model="credentials.position" placeholder="Position within organization">
                </div>
                <div class="form-group">
                    <label for="email">Email</label>
                    <input type="email" id="email" name="email" class="form-control" data-ng-model="credentials.email" placeholder="Email">
                </div>
                <div class="form-group">
                    <label for="username">Username</label>
                    <input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="Username">
                </div>
                <div class="form-group">
                    <label for="password">Password</label>
                    <input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="Password">
                </div>
                <div class="form-group">
                    <label for="confirmPassword">Confirm Password</label>
                    <input type="password" id="confirmPassword" name="confirmPassword" class="form-control" data-ng-model="confirmPassword" compare-to="credentials.password" placeholder="Confirm Password">
                </div>
                <div class="text-center form-group">
                    <button type="submit" class="btn btn-large btn-primary">Sign up</button>&nbsp; or&nbsp;
                    <a href="/#!/signin" class="show-signup">Sign in</a>
                </div>
                <div data-ng-show="error" class="text-center text-danger">
                    <strong data-ng-bind="error"></strong>
                </div>
            </fieldset>
        </form>
    </div>
</section>

Спасибо еще раз!


person Daniel Kobe    schedule 19.05.2015    source источник
comment
Я не так хорошо знаком с генератором js yoman mean js, но похоже, что скрипт сравнения с директивой не может быть включен в ваш проект. Этот генератор компилирует все ваше приложение? или использовать что-то вроде AMD?   -  person micahblu    schedule 19.05.2015
comment
Я просто повторил то, что вы сделали, но не имел проблемы, с которой вы столкнулись. У меня текст показывается и лог печатается...   -  person dejvuth    schedule 19.05.2015


Ответы (1)


Так что проблема была действительно глупой. Все, что я сделал, чтобы исправить это, — это закрыл экземпляр сервера Node и перезапустил grunt. Я предположил, что мне не нужно этого делать, потому что mean.js автоматически перекомпилируется каждый раз, когда вы вносите изменения. Но я думаю, иногда вам нужно перезапустить его.

person Daniel Kobe    schedule 19.05.2015