Я работаю над веб-приложением с AngularJS, которое недавно начал изучать. Я нахожу его чрезвычайно полезным, но, проработав над ним несколько дней, я понял, что приложение рано или поздно запутается, так как я написал весь свой «бэкэнд» код в одном контроллере. Приложение использует множество запросов $http для получения/отправки/удаления/помещения данных с/на удаленные серверы, а также множество переменных области видимости, которые необходимы для того или иного манипулирования страницей.
Я проверил множество учебных/информационных сайтов по AngularJS (похожий вопрос, отличный пост в блоге, например), но я до сих пор не знаю, как реализовать один из моих собственных в моем приложении. Мне было интересно, как обычно обстоят дела с использованием собственного сервиса/модуля/директивы/фабрики? Я надеюсь немного реструктурировать свой код, чтобы все выглядело более организованным; на данный момент я думаю, что не полностью использую преимущества AngularJS со всем своим кодом в одном месте и без использования каких-либо сервисов/модулей, кроме моего основного модуля приложения и контроллера и встроенного $http.
Чтобы вы могли лучше понять мою проблему, пока я использую только два файла javascript, первый из которых app.js :
var app = angular.module('MyAppName',[]);
а второй — controller.js (конечно, я мог бы использовать для этого только 1 файл):
app.controller("MyController", function($scope, $http){
// all my functions/variables in here
// I initialize them with $scope.someName = … if they are needed within this controller view.
// If they are not needed within view I initialize them (functions for instance)
// as functionName = function(){};
}
Так все работает как надо, но я думаю такой подход не использует все возможности AngularJS. Например: я не использую маршрутизацию, которую, вероятно, должен? (URL-адрес все время остается одним и тем же). Я также не использую какие-либо другие расширенные функции angularJS, такие как пользовательские службы/директивы/модули.
Поэтому я спрашиваю: как я могу реструктурировать свой код, чтобы он использовал больше функций AngularJS и оставался читабельным? Когда вы обычно создаете свой собственный сервис/модуль/фабрику? Я как бы не понял всего этого на сайте AngularJS, вероятно, потому, что я начал разрабатывать слишком рано, не имея достаточных знаний, и теперь я почти не понимаю (слишком увлекался двусторонней привязкой и сразу начал кодировать).
Любая помощь по этому вопросу приветствуется.
EDIT: Хорошо, я вижу, что должен кое-что прояснить: моя главная проблема не во внешней структуре папок/файлов, а в самой структуре кода. Теперь у меня есть один контроллер, который содержит все переменные (30+) и функции для использования в моем веб-приложении, такие как функция входа в систему, функция выхода, функции для отображения/скрытия частей страницы, функция для добавления/удаления данных на/с сервера и т. д. Я хотел бы каким-то образом структурировать эти функции/переменные как независимые части, но я не уверен, как это сделать.
EDIT2: Я понял, например, как использовать службы, но, к сожалению, вы не можете вызывать функции службы внутри представлений, например, с помощью ng-click напрямую... вы можете вызывать только переменные $scope, что на самом деле логично. .. к сожалению, я до сих пор не знаю, как организовать свой код, чтобы он выглядел более читабельным и структурированным