Способы борьбы с большим количеством постороннего кода в контроллере

0

Используя Угловой материал в генераторе янтарного материала-футажа, я включаю тост:

var last = {
  bottom: false,
  top: true,
  left: false,
  right: true
};

$scope.toastPosition = angular.extend({},last);

function sanitizePosition() {
  var current = $scope.toastPosition;
  if ( current.bottom && last.top ) current.top = false;
  if ( current.top && last.bottom ) current.bottom = false;
  if ( current.right && last.left ) current.left = false;
  if ( current.left && last.right ) current.right = false;
  last = angular.extend({},current);
}

$scope.getToastPosition = function() {
  sanitizePosition();
  return Object.keys($scope.toastPosition)
    .filter(function(pos) { return $scope.toastPosition[pos]; })
    .join(' ');
};

var showSimpleToast = function() {
  $mdToast.show(
    $mdToast.simple()
      .content('Please enter a valid stock name.')
      .position($scope.getToastPosition())
      .hideDelay(3000)
  );
};

Что я могу сделать, чтобы "избавиться от этого кода"? Стоит ли внедрять сервис? Я просто не хочу, чтобы он занимал столько места в моем контроллере.

  • 0
    перенести тост логику на завод.
  • 0
    ну или тост находится в директиве, которую вы упаковываете для своих целей, или у вас есть логика на фабрике и вызов из директивы или контроллера для загрузки тоста ... зависит от того, как вы собираетесь его использовать и где ... я бы используйте его как директиву, так как он манипулирует DOM и имеет функцию add remove, вызываемую из фабрики
Показать ещё 1 комментарий
Теги:
angular-material
angular-fullstack
yeoman

1 ответ

0

Простите меня, если я не понимаю ваш вопрос, но вы ищете это?

$mdToast.show(
    $mdToast.simple()
    .content('Please enter a valid stock name.')
    .position('top right')
    .hideDelay(3000);
);

Дополнительный код, который у них есть, - это просто, чтобы вы не могли проверить два противоположных флажка или иметь недостающее направление, например, top bottom теряет bottom и получает боковое направление по умолчанию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню