@JIakki

Как избавиться от контроллеров?

У меня есть несколько страниц, в которых почти все идентично, не считая данних и нескольно других методов
Если я создаю Директиву, то не знаю как добавить к каждой странице различний метод, а если создавать Котроллер, то почти все повторяеться (кроме тех одного или двох методов)
Как правильно использовать Контроллер Директив, чтоб не создавать несколько почти идентичних контроллеров?
Зарание спасибо

Пример

angular.module('card', [])
	.directive('card', card)

///////////////////// Логика //////////////////////////

function card($uibModal) {

	return {
		restrick: 'E',
		replace: true,
		transclude: true,
		template: 'card.html',
		controllerAs: 'card',
		controller: controller,
		bindToController: {
			type: '@'
		}
	}
}

function controller($uibModalStack, clientsService) {

	var wm = this;

	wm.close = close;

	getData();

	///////////////////////////////////////////////

	function close() {
		$uibModalStack.dismissAll()
	}

	function getData() {
		return clientsService.card()
		.then(function(res) {
			wm.info = res.data.data;
		})
	}
}


Страница 1
<card><span ng-click='card.close()'>x<span></card>

Страница 2 (появился еще один метод
<card>
    <span ng-click='card.close()'>x<span>
    <span ng-click='card.add()'>+<span>
</card>
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Дробим UI на компоненты (под компонентами я понимаю директиву, кастомный элемент со своим шаблоном и контроллером), все что можно реюзать - реюзаем.

что бы уменьшить различия и повысить реюзабельность - данные прокидываем прямо внутрь компонента через биндинги, а не запрашиваем их в контроллере оных.

Говорить о какой-либо конкретике можно только видя хотя бы примерный мокап того что вы хотите сделать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы