@amazinginternetsites

Как упростить код c помощью Angular.js?

Здравствуйте, друзья.
Написал код, но кажется он может выглядеть гораздо красивее.
Дело в том, что первая часть дублирует вторую часть, меняются только переменные. У меня такого кода 6000 строк.
Как оптимизировать. Заранее спасибо.

//ПЕРВАЯ ЧАСТЬ

$(function() {

var update12 = function() {
             var val = +this.value;
             var showFirst = [4].indexOf(val) >= 0;
       var showSecond = [3,4,5,6,8].indexOf(val) >= 0;
       $('#f_lr1gr2').toggle(showFirst);
       $('#f_lr1grt').toggle(showSecond);
       !showFirst && $('#f_lr1gr2 select').val(1).change();
       !showSecond && $('#f_lr1grt select').val(1).change();
       };
       

var update44 = function() {
             var val = +this.value;
             var showFirst = [8].indexOf(val) >= 0;
       $('#f_lr1gr2el1').toggle(showFirst);
       $('#f_lr1gr2el2').toggle(showFirst);
       $('#f_lr1gr2el3').toggle(showFirst);
       $('#f_lr1gr2el4').toggle(showFirst);
       $('#f_lr1gr2el5').toggle(showFirst);
       !showFirst && $('#f_lr1gr2el1 select').val(1).change();
       !showFirst && $('#f_lr1gr2el2 select').val(1).change();
       !showFirst && $('#f_lr1gr2el3 select').val(1).change();
       !showFirst && $('#f_lr1gr2el4 select').val(1).change();
       !showFirst && $('#f_lr1gr2el5 select').val(1).change();
       };

 $('#lr1rt').change(update12).change();
$('#lr1rt').change(update44).change();

     });

//ВТОРАЯ ЧАСТЬ

  $(function() {

var update112 = function() {
             var val = +this.value;
             var showFirst = [4].indexOf(val) >= 0;
       var showSecond = [3,4,5,6,8].indexOf(val) >= 0;
       $('#f_sp1gr2').toggle(showFirst);
       $('#f_sp1grt').toggle(showSecond);
       !showFirst && $('#f_sp1gr2 select').val(1).change();
       !showSecond && $('#f_sp1grt select').val(1).change();
       };
       

var update144 = function() {
             var val = +this.value;
             var showFirst = [8].indexOf(val) >= 0;
       $('#f_sp1gr2el1').toggle(showFirst);
       $('#f_sp1gr2el2').toggle(showFirst);
       $('#f_sp1gr2el3').toggle(showFirst);
       $('#f_sp1gr2el4').toggle(showFirst);
       $('#f_sp1gr2el5').toggle(showFirst);
       !showFirst && $('#f_sp1gr2el1 select').val(1).change();
       !showFirst && $('#f_sp1gr2el2 select').val(1).change();
       !showFirst && $('#f_sp1gr2el3 select').val(1).change();
       !showFirst && $('#f_sp1gr2el4 select').val(1).change();
       !showFirst && $('#f_sp1gr2el5 select').val(1).change();
       };

 $('#sp1rt').change(update112).change();
$('#sp1rt').change(update144).change();

     });
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
norlin
@norlin
Безотносительно Ангуляр, хотя бы все эти 1-2-3-4-5 в циклы запихните.
Ну и ад с "!showFirst && " – проще же в один if запихнуть.

В общем, ваш вопрос к Ангуляр отношения не имеет.
Ответ написан
Ваш ответ на вопрос

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

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