Используя Угловой материал в генераторе янтарного материала-футажа, я включаю тост:
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)
);
};
Что я могу сделать, чтобы "избавиться от этого кода"? Стоит ли внедрять сервис? Я просто не хочу, чтобы он занимал столько места в моем контроллере.
Простите меня, если я не понимаю ваш вопрос, но вы ищете это?
$mdToast.show(
$mdToast.simple()
.content('Please enter a valid stock name.')
.position('top right')
.hideDelay(3000);
);
Дополнительный код, который у них есть, - это просто, чтобы вы не могли проверить два противоположных флажка или иметь недостающее направление, например, top bottom
теряет bottom
и получает боковое направление по умолчанию.