7 ответов:
можно использовать
ng-classилиng-styleдирективы, как показано нижеэто добавит класс
myclassк кнопке, когда толькоdisableTagButtonимеет значение true , еслиdisableTagButtonложно, тоmyclassснимет с кнопкивыражение перейти к
ng-classможет быть строкой, представляющей разделенные пробелом имена классов, массив или сопоставление имен классов с логическими ценности.1-имена классов с разделителями
.. ng-class="{strike: deleted, bold: important, red: error}"..2 - массив
.. ng-class="[style1, style2, style3]"..style1, style2 & style3 являются классы css проверьте ниже демо для получения дополнительной информации.
2 - выражение
.. ng-class="'my-class' : someProperty ? true: false"..если добавить
.my-classеще удалить его.если имя класса css в
ng-classтире разделены, то вам нужно определить его как строка типа.. ng-class="'my-class' : ..иначе вы можете определить его как строку или не как.. ng-class="myClass : ..<button id="tagBtnId" name="TagsFilter" ng-class="{'myClass': disableTagButton}">Tags</button> <style> .myClass { visibility: hidden } </style>
выражение, передают
[ng-style][2]evals к объекту, ключи которого являются именами стилей CSS, а значения-соответствующими значениями для этих ключей CSS.EX:
.. ng-style="{_key_ : _value_}" ...=>_key_является свойством css в то время как_value_set значение свойства. Ex =>.. ng-style="{color : 'red'}" ...если вы используете что-то вроде
background-colorпотом его не действительный ключ объекта, то он должен быть процитирован.. ng-style="{'background-color' : 'red'}" ...то же, что и ng-класс.<button id="tagBtnId" name="TagsFilter" ng-style="disableTagButton">Tags</button>затем ваш
disableTagButtonдолжен быть как$scope.disableTagButton = {'visibility': 'hidden'}; // then button will hidden. $scope.disableTagButton = {'visibility': 'visible'}; // then button will visible.таким образом, вы можете изменить видимость кнопки, изменив
$scope.disableTagButton.или вы можете использовать его в качестве встроенного выражение,
ng-style="{'visibility': someVar ? 'visible' : 'hidden'}"и
someVarзначение true затем видимость устанавливается вvisibleеще видимость установлена вhidden.
можно использовать
ng-style. Простой Пример:<div ng-style="{'visibility': isMenuOpen?'visible':'hidden'}">...</div>во время выполнения, стиль меняется, когда
isMenuOpenизменения.
- , когда
isMenuOpenи правда, вы будете иметьstyle="visibility: visible".- , когда
isMenuOpenи ложные, вы будете иметьstyle="visibility: hidden".
вот простая директива, которая устанавливает видимость скрытой или видимой (но не свернуть):
.directive('visible', function() { return { restrict: 'A', link: function(scope, element, attributes) { scope.$watch(attributes.visible, function(value){ element.css('visibility', value ? 'visible' : 'hidden'); }); } }; })использование:
<button visible='showButton'>Button that can be invisible</button>angular.module('MyModule', []) .directive('visible', function() { return { restrict: 'A', link: function(scope, element, attributes) { scope.$watch(attributes.visible, function(value){ element.css('visibility', value ? 'visible' : 'hidden'); }); } }; }) .controller('MyController', function($scope) { $scope.showButton = true; });<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app='MyModule' ng-controller='MyController'> <button visible='showButton'>Button that can be invisible</button> <button ng-click='showButton = !showButton'>Hide it or show it</button> </div>
или если вы используете bootstrap, используйте
invisibleклассng-class='{"invisible": !controller.isSending}'
вы должны использовать ngClass или ngStyle в вашем случае:
<button id="tagBtnId" name="TagsFilter" ng-class="{'button-hidden':!disableTagButton}">Tags</button>и CSS:
.button-hidden{ visibility: hidden; }
см.https://docs.angularjs.org/api/ng/directive/ngShow раздел о переопределении .ng-hide
все, что вам нужно, это присвоить класс
hg-hide-animateдля элемент/* 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; }(function() { angular.module('app', []).controller('controller', Controller); /* @ngInject */ function Controller($s) {var THIS = this;THIS.disableTagButton = false;} Controller.$inject = ['$scope']; })();/* 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; }<div ng-app='app' ng-controller="controller as viewmodel"> <label>disabled</label> <input type="checkbox" ng-model="viewmodel.disableTagButton" /> <!-- assign class "ng-hide-animate" --> <button class="ng-hide-animate" id="tagBtnId" name="TagsFilter" ng-hide="viewmodel.disableTagButton"> Tags </button> <pre inspect>viewmodel={{viewmodel | json}}</pre> </div> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
почему вы не используете НГ-если ваш тег не отображается на вашей html-странице. Я думаю, что вы используете это:
<button id="tagBtnId" name="TagsFilter" ng-if="disableTagButton">Tags</button>
Comments