<button id="tagBtnId" name="TagsFilter" ng-show="disableTagButton">Tags</button>
ng-show áp dụng display: none
hoặc display: block
tài sản Nhưng tôi muốn áp dụng visibility: hidden
và visibility: visible
tài sản.
Câu trả lời:
Bạn có thể sử dụng ng-class
hoặc ng-style
hướng dẫn như bên dưới
điều này sẽ thêm lớp myclass
vào nút khi chỉ disableTagButton
đúng, nếu disableTagButton
sai thì myclass
sẽ xóa khỏi nút
biểu thức truyền tới ng-class
có thể là một chuỗi biểu thị các tên lớp được phân cách bằng dấu cách, một mảng hoặc một bản đồ tên lớp với các giá trị boolean.
1 - tên lớp được phân tách bằng dấu cách
.. ng-class="{strike: deleted, bold: important, red: error}"..
2 - một mảng
.. ng-class="[style1, style2, style3]"..
style1, style2 & style3 là các lớp css, hãy kiểm tra bản trình diễn bên dưới để biết thêm thông tin.
2 - biểu thức
.. ng-class="'my-class' : someProperty ? true: false"..
nếu someProperty
tồn tại sau đó thêm .my-class
khác loại bỏ nó.
Nếu tên lớp css trong
ng-class
dấu gạch ngang được phân tách thì bạn cần xác định nó dưới dạng chuỗi giống như.. ng-class="'my-class' : ..
những người khác, bạn có thể xác định nó là chuỗi hoặc không.. ng-class="myClass : ..
<button id="tagBtnId" name="TagsFilter" ng-class="{'myClass': disableTagButton}">Tags</button>
<style>
.myClass {
visibility: hidden
}
</style>
Biểu thức chuyển các [
evals ng-style ][2]
cho một đối tượng có khóa là tên kiểu CSS và giá trị là các giá trị tương ứng cho các khóa CSS đó.
VÍ DỤ:
.. ng-style="{_key_ : _value_}" ...
=> _key_
là thuộc tính css trong khi _value_
đặt giá trị thuộc tính. Ví dụ =>.. ng-style="{color : 'red'}" ...
Nếu bạn sử dụng một cái gì đó giống như
background-color
thì nó không phải là một khóa hợp lệ của một đối tượng thì nó cần được trích dẫn.. ng-style="{'background-color' : 'red'}" ...
giống như ng-class.
<button id="tagBtnId" name="TagsFilter" ng-style="disableTagButton">Tags</button>
sau đó bạn disableTagButton
sẽ giống như
$scope.disableTagButton = {'visibility': 'hidden'}; // then button will hidden.
$scope.disableTagButton = {'visibility': 'visible'}; // then button will visible.
vì vậy bạn có thể thay đổi khả năng hiển thị của nút bằng cách thay đổi $scope.disableTagButton
.
hoặc bạn có thể sử dụng nó dưới dạng biểu thức nội dòng,
ng-style="{'visibility': someVar ? 'visible' : 'hidden'}"
được someVar
đánh giá là true sau đó được đặt thành visible
Khả năng hiển thị khác được đặt thành hidden
.
disableTagButton
để false
sau đó tự động lớp myClass
sẽ loại bỏ từ nút sau đó visibility: hidden
sẽ loại bỏ
Bạn có thể sử dụng ng-style
. Ví dụ đơn giản:
<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>
Trong thời gian chạy, kiểu thay đổi khi isMenuOpen
thay đổi.
isMenuOpen
là sự thật , bạn sẽ có style="visibility: visible"
.isMenuOpen
là sai , bạn sẽ có style="visibility: hidden"
.<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>
ng-style="{visibility: isMenuOpen?'visible':'hidden'}"
Dấu ngoặc kép chỉ hữu ích với từ ghép. Nếu không, bạn có thể sử dụng cú pháp CAML cho các thuộc tính css được tạo mà không có dấu ngoặc kép.
Đây là một lệnh đơn giản đặt chế độ hiển thị thành ẩn hoặc hiện (nhưng không thu gọn):
.directive('visible', function() {
return {
restrict: 'A',
link: function(scope, element, attributes) {
scope.$watch(attributes.visible, function(value){
element.css('visibility', value ? 'visible' : 'hidden');
});
}
};
})
Sử dụng:
<button visible='showButton'>Button that can be invisible</button>
ng-visible
chỉ thị.
Hoặc nếu bạn đang sử dụng bootstrap, hãy sử dụng invisible
lớp
ng-class='{"invisible": !controller.isSending}'
tại sao bạn không sử dụng ng-nếu thẻ của bạn không hiển thị trong trang html của bạn. Tôi nghĩ bạn sử dụng cái này:
<button id="tagBtnId" name="TagsFilter" ng-if="disableTagButton">Tags</button>
xem https://docs.angularjs.org/api/ng/directive/ngHiển thị phần về Ghi đè .ng-hide
Tất cả những gì bạn cần là gán lớp hg-hide-animate
cho phần tử
/* style your element(s) at least for selector.ng-hide */
/* in this case your selector is #tagBtnId */
#tagBtnId.ng-hide {
/*visibility:hidden;*/
opacity: 0;
transition: opacity 1s ease-in;
}
#tagBtnId {
/*visibility:initial;*/
opacity: 1;
transition: opacity 1s ease-out;
}