Я столкнулся с проблемой из-за моего очень низкого понимания основных концепций AngularJs (я думаю). У меня есть список кликабельных слов. Когда я нажимаю на них, они меняют цвет (индивидуально) с помощью классов меток Bootstrap. Он отлично работает, но ... (здесь это :)): Если я нажму кнопку «Попробовать еще раз», я не могу вернуть цвета в состояние init, потому что я не могу установить 'this.selected' в ' false "... См. приведенный ниже код.Возврат в состояние init после ng-click в ng-repeat?
Я уверен, что это не так сложно, но я застрял так, чтобы кто-нибудь мог дать мне подсказку, я был бы признателен.
<h2 class="jumbleW inline" ng-repeat="w in word track by $index">
<span ng-class="{'label': true, 'label-primary': !this.selected, 'label-warning': this.selected}" ng-click="pickWord(w)">{{w}}</span>
</h2>
<button class="btn btn-danger btn-xs" ng-click="clear()">Try again</button>
EDIT: Извините за ошибки моего новичка. Я принял выпуск вышеуказанного кода (голый HTML). Вот и мой pickWord() функция():
$scope.pickWord = function(w){
this.selected = !this.selected;
if (this.selected == false) {
$scope.playerAnswer = $scope.playerAnswer.replace(w, "");
} else {
$scope.playerAnswer += w;
}
}
показать полный код с HTML –
Спасибо @Aruna за это идеальный ответ! Я не могу голосовать за полезный ответ, но вы позволили мне улучшить и отлично работать. Я представил себе более лаконичный способ сделать это, хотя, поскольку это тот «материал», который я обычно делаю, и я всегда чувствую, что это не лучший способ делать вещи (я должен ошибаться в этом!). Кстати, кто-то проголосовал за мой вопрос: (Нет исследований? Я потратил около 1 часа на это. Хорошо, это может показаться смешным, но новички действительно существуют и могут иметь проблемы с новичками и смотреть в неправильном направлении;) – Celfred
@Celfred Это здорово слышать и не уверен, кто проголосовал, поскольку вы новичок. Я все равно проголосую, счастливое кодирование :-) – Aruna