Как пробросить модель в ng-click колбэк?

Всем привет! Ситуация следующая. Пишу на AngularJS форму настройки параметров некоторого объекта. В ней есть несколько слайдеров, у которых помимо ползунка, есть кнопки "+" и "-", которые, соответственно, должны инкрементировать и декрементировать значение модели, к которой привязан слайдер. Таких слайдеров штук N, и хочется повесить на ng-click функцию less(), одинаковую для всех кнопок "-", и функцию more() одинаковую для всех кнопок "+". В качестве параметров этих функций хочется передавать модель, и минимум для функции less(), и максимум для функции more(), так как у каждого слайдера разные диапазоны значений.

Значения, управляемые этим слайдером лежат в одном объекте, и являются его полями, например:
$scope.results = {
  sliders: {
    slider_1: X,
    slider_2: Y,
    slider_3: Z
  }
}

Можно ли как-нибудь передать указатель на конкретное поле объекта results, для изменения его внутри колбека ng-click по кнопке? Я пробовал просто передать:
<a ng-click="less(results.sliders.slider_1, 0)"> - </a>

но в таком случае передается по значению, и при его изменеини, в самом объекте ничего не происходит
  • Вопрос задан
  • 2498 просмотров
Решения вопроса 1
Serhioromano
@Serhioromano
Web Developer
Можно поробовать так

<a ng-click="less('slider_1', 0)"> - </a>

А в методе less

$scope.less = function(name, num) {
    $scope.sliders[name];
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Лучше уж тогда сделать для слайдера прототип с методами less и more, в конструкторе указывать минимальное и максимальное значение и вызывать less и more конкретного экземпляра. А это какое-то извращение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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