将CSS应用于ng-repeat中的唯一li

时间:2015-11-10 10:52:21

标签: javascript html css angularjs

我想更改row_mean = mean(points,[2]) points[1,:] = points[1,:] - row_mean[1] points[2,:] = points[2,:] - row_mean[2] points[3,:] = points[3,:] - row_mean[3] 内的特定li的CSS属性,循环:

ng-repeat

<li id="cmmnt{{$index}}" ng-repeat="comment in ad.comments | orderBy : sortComment : true"> <div class="commentTextArea"> <p id="commentText">{{comment.text | limitTo: 100 }}</p> <a ng-click="changeEm('cmmnt'+$index)" ng-show="comment.text.length>=10"> {{moreLessText}} <i class="fa fa-angle-down" style="color: #ee4a4a;"></i> </a> </div> </li> </ul> 需要通过ID更改ng-click="changeEm('cmmnt'+$index)"的高度(style.maxHeight)。 这是功能:

li

$scope.changeEm = function(liElement){ document.getElementById("'liElement'").style.maxHeight ="1em;!important";} console.log()只是一个字符串,我无法通过'liElement'找到它

感谢。

2 个答案:

答案 0 :(得分:1)

您使用字符串作为变量而不是传递给函数的变量。我不推荐这种方法,但您可以通过更改此方法来解决此问题:

document.getElementById("'liElement'")

到此:

document.getElementById(liElement)

我建议的方法是使用ng-class:

<li id="cmmnt{{$index}}" 
    ng-class="{ 'active': comment.clicked }"
    ng-repeat="comment in ad.comments | orderBy : sortComment : true">
    <div class="commentTextArea">
        <p class="commentText">{{comment.text | limitTo: 100 }}</p>
        <a ng-click="changeEm(comment)" ng-show="comment.text.length>=10"> {{moreLessText}}
            <i class="fa fa-angle-down" style="color: #ee4a4a;"></i>
        </a>
    </div>
</li>

并在你的changeEm函数中:

$scope.changeEm = function(comment) {
    comment.clicked = true;
}

然后你可以使用&#39; active&#39;你的CSS中的课程:

/* the 'p' in non-clicked 'li' */
li p.commentText {
    max-height: 10px;
}
/* the 'p' in a clicked 'li' */
li.active p.commentText {
    max-height: auto;
}

答案 1 :(得分:0)

答案很简单,我只需添加ng-class

<div class="commentTextArea">
            <p id="commentText" ng-class="comment.active==true?'visable':'notVisable'">{{comment.text}}</p>
          </div>

和功能:

$scope.changeEm = function(comment){
                    console.log(comment);
                    comment.active = true;
                }

最后匹配CSS:

.visable {
    height: 6.5em !important;
    overflow: visible!important;
}
.notVisable{
    overflow: hidden!important;
}

希望帮助某人!