在AngularJS中更改背景图片按钮

时间:2019-02-07 00:30:05

标签: javascript html angularjs image

309/5000 你好, 这是我的第一篇文章。 我正在用AngularJS开发残酷的TicTacToe。 但是单击按钮时,无法更改按钮的图像。 游戏还没有结束,我只需要帮助。 抱歉,英语为“ MACCHERONICO”(意大利面)。 谢谢大家。

app.controller('gameController', function ($scope, $routeParams) {
$scope.p1name = $routeParams.p1name;
$scope.p2name = $routeParams.p2name;
$scope.griglia = ['', '', '', '', '', '', '', '', ''];
$scope.player = $scope.p1name;
$scope.turno = 0;
var img_array = ['imm\broccolo-sorridente-alimenti-verdure-1138234.png',
    'imm\pomodoro-sorridente-alimenti-verdure-1130307.png'];
$scope.img;
$scope.riempi = function (a) {
    console.log("entrati in riempi casella " + a);
    if ($scope.turno == 0) {
        $scope.griglia[a - 1] = "x";
    } else {
        $scope.griglia[a - 1] = "o";
    }
    $scope.aggiornaimg();
    $scope.cambiaturno();
};

$scope.cambiaturno = function () {
    console.log("entrati in cambiaturno");
    if ($scope.turno == 0) {
        $scope.turno = 1;
        $scope.player = $scope.p1name;
    } else {
        $scope.turno = 0;
        $scope.player = $scope.p2name;
    }
};
$scope.aggiornaimg = function () {
    console.log("entrati in aggiornaimg");
    for (let index = 0; index < 9; index++) {
        if ($scope.griglia[index] == "x") {
            console.log("entrati in aggiornaimg primo if");       
            document.getElementById("i" + index + 1).currentSrc = img_array[0];
        } else if ($scope.griglia[index] == "o") {
            document.getElementById("i" + index + 1).currentSrc = img_array[1];
        }
    }
};

我的HTML

        <table >
                    <button type="button" ng-click=(riempi(1))>
                        <img ng-src="{{img}}" id="i1">
                    </button>
                </td>
                <td>
                    <button type="button" ng-click=(riempi(2))>
                        <img src="" id="i2"> </button>
                </td>
               ....
        </table>

1 个答案:

答案 0 :(得分:0)

我认为您的问题是"i" + index + 1不能生成您想要的ID:

for (let index = 0; index < 9; index++) {
    console.log("i" + index + 1);
}

欢迎使用JS的美丽之处,您需要的是:

for (let index = 0; index < 9; index++) {
    console.log("i" + (index + 1));
}

这样,总和在连接之前执行。