我正在制作一个基本的JavaScript赛车游戏程序,并尝试使用Angular更新视图中的得分。我已经编写了基本代码来移动玩家并拥有不同的游戏状态。
你可以在这里看到我设置代码的方式:
这是我的js文件的一部分; Player对象和scoreController:
你可以在这里看到我设置代码的方式:
http://jsfiddle.net/ey8dk22r/1/
由于某种原因,它没有在fiddle中显示,但在我的端上,angular代码将为每个分数显示“0”。如果我将$scope.score_one或two更改为类似“ hello”的东西,则该单词将显示在其位置。目前,我已将{{score_one}}和{{score_two}}设置为player1.score和player2.score。无论最初设置的数字是什么,都将显示出来(0)。当玩家获胜并成功更新玩家的得分时,视图中的得分不会更新。这是我的js文件的一部分; Player对象和scoreController:
function Player(element_id, name){
this.el = $(element_id).selector;
this.position = 1;
this.name = name;
this.score = 0;
this.check = function(){
if ($(this.el + ' td:last-child').hasClass("active")){
this.score += 1;
$(".winner").html("<h2>" + this.name + " wins!</h2>")
game = false;
$(".reset").show();
}
}
this.move = function(position){
$(this.el + ' td').removeClass('active');
$(this.el + ' td:eq(' + (this.position) + ')').addClass("active");
this.check();
this.position += 1;
}
}
function scoreController($scope){
$scope.score_one = player1.score;
$scope.score_two = player2.score;
}
这里是我在html文件中进行数据绑定的地方:
<div class="container" ng-app="" ng-controller="scoreController">
<h1>A Day at the Races</h1>
<ol>
<li ng-model="score_one">Mew: {{ score_one }}</li>
<li ng-model="score_two">Celebi: {{ score_two }}</li>
</ol>
所以,我想知道作用域是否有问题,为什么得分没有正确更新。我已经正确地链接了Angular,并尝试使用输入字段进行操作,可以正确地更新视图,但出于某种原因,这不起作用。我查看了$apply并尝试在$apply()中使用$scope.score_one,但我不确定我是否做对了。
如果您有任何想法,请告诉我。谢谢。
$apply
来更新模型的值。 - khakioutangular.module(“App”,[])
在哪里?在我们谈论“第三个”问题之前,您能先解决这个问题吗? - New Dev