首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-style不工作/更新

ng-style不工作/更新
EN

Stack Overflow用户
提问于 2017-01-10 05:37:17
回答 2查看 762关注 0票数 1

我的html文件中有这段代码。我想显示一个正方形的游戏板,当程序运行时,ng-style会更新background-color

代码语言:javascript
复制
<div class="row" ng-repeat="col in board">
        <div class="column" ng-style="{'background-color': colour($parent.$index, $index)}" ng-repeat="row in col track by $index"></div>
</div>

现在,colour函数只返回一种颜色,board是这样设置的:

代码语言:javascript
复制
function setUp() {
    $scope.board=[];
    for (var i = 0; i < BOARD_SIZE; i++) {
        $scope.board[i] = [];
        for (var j = 0; j < BOARD_SIZE; j++) {
            $scope.board[i][j] = false;
        }
    }
}

$scope.colour = function(col, row) {
    return '#e6e6e6';
}

但是,当我尝试运行此命令时,没有显示任何内容。我希望它能在屏幕上显示一个正方形。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-10 05:55:34

您的内部div (应用ng样式的div)没有任何内容。因此,除非您添加内容或附加样式使其具有宽度和高度,否则它不会显示出来。

票数 0
EN

Stack Overflow用户

发布于 2017-01-10 06:09:02

问题似乎是子div中缺少的内容(第二个ng-repeat)。

代码语言:javascript
复制
function MyController($scope) {
    var BOARD_SIZE = 10;

    function setUp() {
        $scope.board = [];
        for (var i = 0; i < BOARD_SIZE; i++) {
            $scope.board[i] = [];
            for (var j = 0; j < BOARD_SIZE; j++) {
                $scope.board[i][j] = false;
            }
        }
    }

    $scope.colour = function (col, row) {
        return '#e6e6e6';
    }

    setUp();

}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="MyController">
    <div class="row" ng-repeat="col in board">
        <div class="column" ng-style="{'background-color': colour($parent.$index, $index)}" ng-repeat="row in col track by $index">{{row}}</div>
    </div>
</div>

如果你不打算插入内容,你应该固定高度和宽度(我用的是你的column类)

代码语言:javascript
复制
function MyController($scope) {
    var BOARD_SIZE = 10;

    function setUp() {
        $scope.board = [];
        for (var i = 0; i < BOARD_SIZE; i++) {
            $scope.board[i] = [];
            for (var j = 0; j < BOARD_SIZE; j++) {
                $scope.board[i][j] = false;
            }
        }
    }

    $scope.colour = function (col, row) {
        return '#e6e6e6';
    }

    setUp();

}
代码语言:javascript
复制
.column {
    height: 20px;
    width: 60px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="MyController">
    <div class="row" ng-repeat="col in board">
        <div class="column" ng-style="{'background-color': colour($parent.$index, $index)}" ng-repeat="row in col track by $index"></div>
    </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41557407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档