AngularJS - 使用ng-style将样式应用于ng-repeat中的第一个元素

时间:2014-08-07 07:06:15

标签: angularjs ng-style

我有一个样式对象,我需要为第一个元素设置另一个css样式。 我特别为此创建了一个指令,但它没有工作

我将非常感谢您的帮助!

以下是代码:

<div class="row" ng-style="rowCss" ng-repeat="top in gridObj" ng-zero>
$scope.rowCss = {
    "height" : rowAndSquareHeight,
    "padding-top": baseLine
}

editorApp.directive('ngZero', ['$document', '$parse', function($document, $parse) {
    return function(scope, element, attr) {
        $(element).css({"padding-top" : "0px"});
    };
}]);

谢谢!

4 个答案:

答案 0 :(得分:5)

<div class="row" 
    ng-style="{ true : rowCss }[$first]" 
    ng-repeat="top in gridObj">
    ...

<强> Plunker

答案 1 :(得分:4)

您不需要指令。 ng-repeat scope在重复范围中公开属性$first,对于第一个元素,该属性为true。您可以为第一行定义一个类,并使用ng-class来应用它

ng-class="{'my-first-class':$first}"

答案 2 :(得分:0)

您可以使用$ index来跟踪'n'元素。不确定是否已创建指令来解决此问题,但可以使用ng-attr-style =“{$ index == 1?'”padding-top“:”0px“}'}”

此外,您不应该操纵HTML或引用控制器中的presentation / css。

答案 3 :(得分:-1)

您可以使用版本1.1.5中的 ng-if - new来有条件地操作CSS样式。