我有一个样式对象,我需要为第一个元素设置另一个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"});
};
}]);
谢谢!
答案 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样式。