Tenho um formulário para responder a mensagens que desejo mostrar apenas quando isReplyFormOpen
for verdadeiro e, sempre que clico no botão de resposta, quero alternar se o formulário é mostrado ou não. Como posso fazer isso?
javascript
html
angularjs
ng-show
liamzebedee
fonte
fonte
ng-class
:<span ng-click="started=!started" ng-class="started ? 'btn-danger' : 'btn-success' ">
+1. Obrigado:) ♥.Basicamente, resolvi NÃO clicando no
isReplyFormOpen
valor sempre que ele é clicado:fonte
ng-init
necessário?undefined
inicialmente e!undefined == true
Se baseado em clique aqui é:
fonte
É importante notar que se você tiver um botão no Controlador A e o elemento que deseja mostrar no Controlador B, pode ser necessário usar a notação de ponto para acessar a variável de escopo entre os controladores.
Por exemplo, isso não funcionará:
Para resolver isso, crie uma variável global (ou seja, no Controlador A ou no seu Controlador principal):
Em seguida, adicione um prefixo 'global' ao seu clique e mostre as variáveis:
Para obter mais detalhes, verifique os Estados aninhados e visualizações aninhadas na documentação da IU Angular , assista a um vídeo ou leia os escopos de compreensão .
fonte
Aqui está um exemplo para usar as diretivas ngclick & ng-if.
Nota : que ng-if remove o elemento do DOM, mas ng-hide apenas oculta a exibição do elemento.
fonte
Se você tiver vários menus com submenus, poderá usar a solução abaixo.
HTML
Há duas funções que chamei primeiro: ng-click = hasSubMenu ('painel'). Esta função será utilizada para alternar o menu e é explicada no código abaixo. O ng-class = "{active: isActive ('/ customerCare / transaction')} irá adicionar uma classe ativa ao item de menu atual.
Agora defini algumas funções em meu aplicativo:
Primeiro, adicione uma dependência $ rootScope que é usada para declarar variáveis e funções. Para saber mais sobre $ roootScope, consulte o link: https://docs.angularjs.org/api/ng/service/ $ rootScope
Aqui está meu arquivo de aplicativo:
A função acima é usada para adicionar uma classe ativa ao item de menu atual.
Por padrão, $ rootScope.showDash e $ rootScope.showCC são definidos como falsos. Isso definirá os menus para fechados quando a página for carregada inicialmente. Se você tiver mais de dois submenus, adicione de acordo.
A função hasSubMenu () funcionará para alternar entre os menus. Eu adicionei uma pequena condição
ele permanecerá o submenu aberto após recarregar a página de acordo com o item de menu selecionado.
Eu defini minhas páginas como:
Você pode usar a função isActive () apenas se tiver um único menu sem submenu. Você pode modificar o código de acordo com sua necessidade. Espero que isso ajude. Tenha um ótimo dia :)
fonte