Подтвердить что ты не робот

Angularjs - разделяющие файлы директив, но находящиеся на одном модуле

Я пытаюсь отделить директиву к другому файлу, не объявляя новый модуль - не делая:

 angular.module('myapp.newmodule',[]).directive

но просто:

angular.module('myapp.directives'). директива (''

модуль myapp.directives существует в другом файле и отлично работает. но когда я пытаюсь использовать его в другом файле, как показано выше (без []), он терпит неудачу.

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

4b9b3361

Ответ 1

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

/* create module */
angular.module('myapp.newmodule',['ngRoute','ngResource']);

/* declare components of same module, note same name*/
angular.module('myapp.newmodule').directive....

Если вы хотите создать новые модули, вам нужно вставить их в основной модуль ng-app в качестве зависимостей.

/* main ng-app module , injects another module you created below*/
angular.module('myapp.newmodule',['ngRoute','ngResource','myUploader']);

/* new module, must have dependency argument */
angular.module('myUploader',[]).directive...

Ответ 2

Где бы то ни было, просто обратитесь к имени модуля (даже в разных файлах) и приложите директивы. Javascript просто увидит, что прикреплено к модулю и не видит, из какого файла он появился.

file1.js

angular.module('module-name')
    .directive('directive1', function () {
        return {
            ....
        };
    });

file2.js

angular.module('module-name')
    .directive('directive2', function () {
        return {
            ....
        };
    });

Единственное, что не забудьте включить оба файла js в файл html представления. сказать index.html

<script src="file1.js"></script>
<script src="file2.js"></script>

Ответ 3

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

В первом файле вам нужно создать свой модуль приложения:

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

Затем в каждом файле вы можете прикреплять дополнительные вещи к myApp:

myApp.directive('ngValidate', ['$parse', function ($parse) {
  ....
}]);

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