【问题标题】:Why does my ng-class display even when false为什么我的 ng-class 即使在 false 时也会显示
【发布时间】:2017-05-30 16:37:37
【问题描述】:

当用户猜错鱼的名称时,我正试图摇晃一张图片。我正在使用有条件的ng-class="{'shake':error}"。然而,即使答案是正确的,图像也会抖动。我不相信任何时候$scope.error 都设置为true。我在这里想念什么?

codepen

【问题讨论】:

    标签: javascript css angularjs ng-class angular-ng-class


    【解决方案1】:

    我认为你想要做的是 returnguessIsCorrect 或从你的 compare 函数中的guessIsWrong。

    $scope.compare = function(guess) {
        guess = guess.replace(/\s/g, '').toLowerCase();
        var answers = [];
        answers.push($scope.name.replace(/\s/g, '').toLowerCase());
    
        currentAnimal.alts.forEach(function(alt) {
            answers.push(alt.toLowerCase().replace(/\s/g, ''));
        });
        //console.log(answers);
        //console.log("Guess: " + guess + "\n");
        //console.log("Answer: " + answers + "\n");
    
        for (var x = 0; x <= answers.length; x++) {
            if (guess === answers[x]) {
                return guessIsCorrect();
            }
            if (x === answers.length) {
                return guessIsWrong();
            }
        }
    
    };
    

    【讨论】:

    • 啊!太感谢了!这是我的 JavaScript 知识中的一个明显差距。但是为什么我需要返回任何一个函数呢?难道我不能直接调用它吗?
    • 我认为有/将会出现两个函数都可以触发的情况。通过使用return,您将在该点停止该函数并忽略后面的代码。您也可以在调用guessIsCorrect 或guessIsWrong 之后使用break,因为这会退出for 循环。
    • 啊,我明白了。感谢您的帮助!
    猜你喜欢
    • 2016-01-24
    • 2011-11-05
    • 2022-06-20
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2023-01-01
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多