【问题标题】:Generating Dynamic value for class in Angularjs在Angularjs中为类生成动态值
【发布时间】:2014-05-18 17:44:40
【问题描述】:

在我的应用程序中,我想为每个 div 类添加动态数字,以创建动态 twitter 引导网格类。例如 col-md-2 或 col-md-3。然后从这些 div 重复:

 <div class="row" ng-repeat="row in placeholders">
        <div class="col-md-12">
            <div ng-repeat="column in row.columns" class="col-md-{{12 / row.columns.length}} biki"></div>
        </div>
    </div>

这是模型:

  $scope.placeholders = [{
            name: "Row 1",
            showName: true,
            columns: [{
                name: "Col1 in Row 1",
            }, {
                name: "Col2 in Row 1"
            }]

    }, {
            name: "Row 2",
            showName: true,
            columns: [{
                name: "Col 1 in Row 2",
            }, {
                name: "Col 2 in Row 2"
            },
             {
                name: "Col 3 in Row 2"
            }]

    }]

因此,如果对象中的列数组的长度为 6,则它除以 12 并使用 col-md-2 类创建 6 个 div。当数组的长度为 5 或 8 时会出现问题。如果 5 数字除以 12 是 2.4 并且 twitter bootstrap 没有任何值 2.4 所以我想parseInt 或用其他方式解决问题,但我不知道该怎么做。

【问题讨论】:

  • 使用Math.ceil() 进行四舍五入。 See MDN docs
  • 我不能在角度表达式中使用 Math.ceil() 或 ParseInt() 它不起作用
  • 可以简单地在表达式class="{{getClass(row)}}"中使用作用域函数
  • 这可以使用过滤器来解决。演示:jsbin.com/bahoze/4/edit

标签: javascript angularjs twitter-bootstrap-3


【解决方案1】:

DEMO

创建此过滤器:

myApp.filter('parseInt', function () {
    return function(a,b){
        return(parseInt(a))
    }
});

现在在你看来:

class="col-md-{{12 / row.columns.length | parseInt}} biki"

这样就可以了:)

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2012-02-07
    相关资源
    最近更新 更多