我不确定我是否正在努力做到最好(正确?)方式,但我在AngularJS页面中有一个文字游戏,玩家试图猜测一个单词。每个字母都由一个文本框表示,当玩家输入他们的猜测时,该字母将被传递给一个函数,该函数检查该字母是否正确并相应地更改该框的颜色。
到目前为止,我的部分文件中包含以下代码:
<p>Answer: {{selectedWord}}</p>
<div>
<input type="text" name="letters[]" class="answerbox" ng-repeat="guess in guesses" id="{{'letter_'+$index}}" ng-model="guess.value" onkeyup="testResults(this)" ng-focus="this.select();" size="1" maxlength="1">
</div>
这将获取输入并将其传递给我的函数,如下所示:
function testResults(letter) {
var box_id = letter.id;
var boxparts = box_id.split("_");
var box_number = boxparts[1];
var correct_answer = selectedWord(box_number-1, 1);
var your_answer = letter.value;
your_answer = your_answer.toLowerCase();
if (your_answer == correct_answer) {
letter.style.backgroundColor = "#32e53e";
} else {letter.style.backgroundColor = "#ff6d6e"; }
var is_correct = check_all();
}
我无法做的是传递正确答案($scope.selectedWord)
的值,以便我可以将其用作我的函数中的var correct_answer
。
我试过简单地用onkeyup="testResults(this, $scope.selectedWord)"
和其他各种替代方法传递它,但这不起作用。
对于如何将此值传递给函数或者AngularJS提供更好的方法来实现我的目标,我会非常感兴趣。
答案 0 :(得分:1)
一些快速提示:
ng-keyup
)而非本机javascript(onkeyup
),以使您的生活更轻松。ng-repeat
来&#34;迭代&#34;模板上的字符串。ng-model
设置为数组,这样您就不必捣乱ID和内容。如果要以绿色或红色突出显示输入,请使用ng-class
。我为你做了一个小小提琴作为例子: http://jsfiddle.net/ManuKaracho/fwp41qd2/
答案 1 :(得分:0)
密钥的角度方式ng-keyup="testResults(guess.value)"