AngularJS базовый шаблон

Запись от 25.09.2016
Для решения простых задач ангуляр можно использовать и без специальных сборщиков вроде webpack, grunt и т.п.
Под простые задачи можно отнести гаджеты рабочего стола bitrix.

Вот собственно сам набросок кода для работы с контроллерами:
/* global this, angular, bind */

// =============================================================================
// === СЕРВИС ==================================================================
// =============================================================================

var Service = function($rootScope, $http, $timeout) {
	this.$scope	= $rootScope;
	this.$http	= $http;
	this.$timeout	= $timeout;

};


// =============================================================================
// === КОНТРОЛЛЕР ==============================================================
// =============================================================================

var MyCtrl = function($scope, $element, service, $timeout) {
	this.$scope	= $scope;
	this.$element	= $element;
	this.service	= service;
	this.$timeout	= $timeout;
	
	
	// Параметры объекта
	this.$scope.myParam = {};


	// Методы
	this.$scope.myFunc = {};
	
	
	// События
	// ...

};


// =============================================================================
// === ИНИЦИАЛИЗАЦИЯ ===========================================================
// =============================================================================

angular.module('myApp', [])
	.factory('Service', [
		'$rootScope', '$http', '$timeout',
		function ($rootScope, $http, $timeout) {
			return new Service($rootScope, $http, $timeout);
		}
	])
	.controller('MyCtrl', ['$scope', '$element', 'Service', '$timeout', MyCtrl])
;
Чем мне нравится ангуляр, так это удобным и понятным оформлением кода - всё можно разложить по полочкам. Общение с бекендом по аяксу - через сервис, взаимодествие с DOM - контроллеры (можно и директивы использовать, но не всегда они уместны), а вызов действий и работа с элементами DOM никак не завязана на классах (привет, jQuery), что на самом деле очень удобно!