@DimaPolishuk

Как избавиться от лишнего js кода?

4e8b3cfde0cc4bf09ec30a7bd52b106b.png
у меня есть 2 вида кнопок "Старт/Стоп" и "Быстрый старт"

вот функции,которые отвечают за их работу

Функция для кнопки "Старт/Стоп"
var isStart = true;
        $scope.buttonText = "Start";

        $scope.startOrStop = function() {
          if (isStart) {
            $scope.style = {
              background: 'red'
            };
            $scope.start();
            $scope.startTIME();
            isStart = false;
            $scope.buttonText = "Stop";
          } else {
            $scope.style = {
              background: '#11dc51'
            };
            $scope.stop();
            isStart = true;
            $scope.buttonText = "Start";
          }
        };


а это функция для кнопки " Быстрый старт"
$scope.quickStart=function(tasks){
          if (isStart) {
            $scope.style = {
              background: 'red'
            };
            $scope.start();
            $scope.startTIME();
            $scope.tasks.name;
            isStart = false;
            $scope.buttonText = "Stop";
            $scope.currentTask.name=tasks.name;
            $scope.currentTask.selectedProject=tasks.selectedProject;

          } else {
            $scope.style = {
              background: 'red'
            };
            $scope.stop();
            var restart = $timeout($scope.quickStart, 100);
            $scope.currentTask.name=tasks.name;
            $scope.currentTask.selectedProject=tasks.selectedProject;
            isStart = true;
            $scope.buttonText = "Stop";
          }
        }


В общем код похож между собой, как сделать так ,чтобы сократить лишний код и выглядело все более лаконично?
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 2
streetflush
@streetflush
1. Вместо стилей, заведите css классы и меняйте их через ng-class
2. Текст кнопки так же можно в html менять по значению переменной
3. Дублирующийся код в if else можно вынести за скобки
4. Зачем строчка $scope.tasks.name;
5. Переменную isStart менять лучше в start() и stop()
6. controllerAs
...
Ответ написан
Комментировать
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Что-то типа
tasks = {
		START: {
			name: 'Start',
			color: 'green',

		},
		STOP: {
			name: 'Stop',
			color: 'red',

		}
	};

	$scope.currentTask = tasks.STOP;

<button>{{currentTask.name}}</button>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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