@beduin01

Как изменить значение нескольких полей в AngualarJS?

Есть Json объект:
{
	"id": 1, 
	"question": "Текст вопроса?", 
		"answers": [
					{
						"id" : 1,
						"answer":	"aaa",
						"isSelected" : 0
					}, 
					{	"id" : 2,
						 "answer": "bbb",
						 "isSelected" : 0
					}, 
					{	 "id" : 3,
						 "answer": "ccc",
						 "isSelected" : 0
					}, 
					{	 "id" : 4,
						 "answer": "ddd",
						"isSelected" : 0
					}
				 ],
		"allowMultipleChoice" : true
}


Хочу сделать следующее. Все это счастье отрисовываю в виде кнопок. Это я уже научился делать. При клике на кнопку меняю "isSelected" на 1. Проблема в том, что мне нужно сделать, чтобы не во всех разделах была возможность множественного выбора. Сейчас если я прокликаю по всем кнопкам, то у меня все isSelected получат единичку. Задача как-то обрабатывать allowMultipleChoice. Как я понимаю нужно проверять его значение и если оно false то сбрасывать значения у всех остальных isSelected кроме заданного.

Не могли бы подсказать как это грамотно сделать. Просто не могу придумать как все isSelected обходить
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dixoNich
frontend developer
self.answers = [{...}]
self.currentAnswer = null

self.onSelectAnswer = function (answer) {
   self.currentAnswer.isSelected = true
   answer.isSelected = true
   self.currentAnswer = answer
}


div(ng-repeat="answer in ctrl.answers" ng-click="ctrl.onSelectAnswer(answer)")

Думаю, идея понятна. Возможно, можно сделать просто currentAnswer = answer и в шаблоне isSelected смотреть как currentAnswer === answer, т.к. по ссылкам всё, сл. объекты равны.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы