Помогите понять поведение js

226
11 апреля 2017, 08:14

Всем доброго времени суток. Плохо разбираюсь в angular, а javascript подавно, но есть задача и ее нужно решать: Есть поле мультивыбора, в нем есть наименования товаров с ценами. Мне нужно при выборе значений товаров подсчитать их сумму.

Поле мультиселекта выглядит так:

<select class="chzn-select " multiple="multiple">
  <option ng-repeat="st in catalogs.state">{{ st.name  }}{{ st.price  }}</option>
</select>

Мне соответственно необходимо суммировать все значения которые будут выбраны в {{ st.price }}

Добрые люди дали скрипт для подсчета:

$scope.sumF=function(a){
    $scope.sumEnd=0;
    for(let i=0;i<a.length;i++){
      $scope.sumEnd +=parseInt(a[i]);
    }
}

И соответственно html такой:

<select class="chzn-select " multiple="multiple" ng-model="sum" ng-change="sumF(sum)">
  <option ng-repeat="st in catalog" value="{{st.price}}">{{st.name}}{{st.price}}</option>
</select>

Но появляется проблема, если я на странице вывожу значение переменной sumEnd. Заключается проблема в следующем: если сначала добавить пару значений в поле мультивыбора, а затем их все удалить, то в sumEnd остается значение первого выбранного эллемента(к примеру 100рублей), и потом если добавить еще один элемент то sumEnd = sumEnd(в котором почему то лежит уже значение в 100руб) + новый элемент. Хотя ожидается, что sumEnd = новый элемент.

Но вот если убрать со страницы sumEnd и выводить его значение в консоль, то такой проблемы нет! В чем у меня проблема?

Answer 1

По-моему будет проще сохранять список выбранных элементов, а уже от него делать сумму, сверяя присутствие в общем списке

READ ALSO
Как скрыть ui объекты в unity?

Как скрыть ui объекты в unity?

Всем приветПерепробовал кучу скриптов, не одна не подошла

606
с# wfp как сделать тумблер?

с# wfp как сделать тумблер?

В wpf не силен, так что написать свой элемент наверное не судьбаРешил наследоваться от кнопки и изменять ее цвет по нажатию

214
Visual studio 2017 есть ли способ дебажить web запросы?

Visual studio 2017 есть ли способ дебажить web запросы?

Использую в своём C# проекте библиотеку xNetВозникла потребность посмотреть что передаёт данная библиотека в интернет без установки сторонних...

203
Как вложить в код базу данных [требует правки]

Как вложить в код базу данных [требует правки]

Возможно ли каким нибудь образом заложить в код знания, то есть типа чтобы софт знал то то и то то? Ну это не совсем если то, то тогда то, то есть...

222