2017-01-15 9 views
0

イメージがあります私はユーザーが魚の名前を誤って推測したときに揺れようとしています。私は条件付きng-class="{'shake':error}"を使用しています。しかし、答えが正しいときでも、画像は揺れます。私はいつでも$scope.errorがtrueに設定されているとは思わない。私はここで何が欠けていますか?なぜ私のngクラスは偽であっても表示されます

codepen

答えて

0

私は何がやりたいことは、あなたのcompare関数からreturn guessIsCorrectまたは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(); 
     } 
    } 

}; 
+0

Ah!どうもありがとうございます!これは私のJavaScriptの知識の明らかな差です。しかし、なぜどちらの関数を返す必要がありますか?私はちょうどそれを呼び出すことはできませんか? –

+0

私は、両方の機能が起動できるケースがあると思います。 'return'を使うことで、その時点で関数を停止し、後に来るコードを無視します。 guessIsCorrectまたはguessIsWrongが呼び出された後で、forループを終了するときに 'break'を使用することもできます。 –

+0

ああ、私はつかまえました。助けてくれてありがとう! –

関連する問題