在ng-repeat中点击ng后返回初始状态?

时间:2016-10-15 10:19:40

标签: javascript angularjs ng-repeat

由于我对基本AngularJs概念的理解很少(我认为),因此我面临一个问题。我有一个可点击的单词列表。当我点击它们时,它们会通过使用Bootstrap'标签来改变颜色(单独)。类。它工作正常但是......(这里是:)):如果我点击我的'再试一次'按钮,我无法将颜色设置回初始状态,因为我无法设置' this.selected'到' false' ...请参阅以下代码。

我确定它并不那么难,但是如果有人能给我一个暗示,我就会陷入困境,我很感激。

<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>
编辑:对不起我的初学者的错误。我接受了上面代码的版本(裸HTML)。 这里也是我的pickWord()函数():

$scope.pickWord = function(w){
    this.selected = !this.selected;
    if (this.selected == false) {
        $scope.playerAnswer = $scope.playerAnswer.replace(w, "");
    } else {
        $scope.playerAnswer += w;
    }
}

1 个答案:

答案 0 :(得分:0)

不要使用Promise。相反,如果一个对象以其他方式为所选索引创建一个数组,则向ng-repeat对象this添加一个属性,如下所示。

w

html

<h2 class="jumbleW inline" ng-repeat="w in word track by $index"> <span ng-class="{'label': true, 'label-primary': selectedItems.indexOf($index) === -1, 'label-warning': selectedItems.indexOf($index) !== -1}" ng-click="pickWord(w, $index)">{{w}}</span> </h2> <button class="btn btn-danger btn-xs" ng-click="clear()">Try again</button>

JS