Ng-hide和last:子CSS

时间:2017-05-03 09:46:33

标签: html css angularjs

我有;

<div class="exampleDiv">
    <element1></element1>
    <element2></element2>
    <element3></element3>
</div>

然后一些CSS使用last:子选择器(只有margin-right:0 FYI)。但是我在元素1-3上使用条件ng-hide,因此如果隐藏了element3,则最后:子CSS不会移动到element2,因为从技术上讲,它在DOM中呈现然后隐藏。

所以我想知道有没有办法使用ng-hide并拥有类似'last-visible-element'选择器的东西。因此,当ng-hide工作时,用户可以看到的最后一个元素是否已将此CSS应用于它?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

remove()你寻找的东西,因为它确实从dom树中删除了元素:

var myApp = angular.module("myApp", []);
 myApp.controller("myController", function($scope) {
 $scope.removeElement = function() {	  
	 var elmn = angular.element( document.querySelector( '.test :last-child' ) );
     elmn.remove();
 };
});
.test {
  display: flex;
  justify-content: space-between;
}

.test div {
  border: solid;
  min-width: 5em;
}

.test :last-child {
  color: red;
}
.test :last-child:before {
 content:"actual last-child ";
 color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="myApp">
  <p>each time you click, last element is removed</p>
  <div ng-controller="myController" class="test">
    <input type="button" value="Remove Div " ng-click="removeElement()">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>last-child</div>
  </div>
</div>

http://codepen.io/gc-nomade/pen/KmvKdV

答案 1 :(得分:0)

您可以尝试根据dynamic添加some condition课程,例如: -

css / style

.show {
    display: inline;
}
.hide {
    display: none;
}

script

<div class="exampleDiv">
   <element1 ng-class="{'show' : item.isVisible == true, 'hide' : item.isVisible == false}"></element1>
   <element2 ng-class="{'show' : item.isVisible == true, 'hide' : item.isVisible == false}"></element2>
   <element3 ng-class="{'show' : item.isVisible == true, 'hide' : item.isVisible == false}"></element3>
</div>