Estou tentando usar o recurso ng-click do AngularJS para alternar visualizações. Como eu faria isso com o código abaixo?
index.html
<div ng-controller="Cntrl">
<div ng-click="someFunction()">
click me
<div>
<div>
controller.js
function Cntrl ($scope) {
$scope.someFunction = function(){
//code to change view?
}
}
javascript
angularjs
ngroute
À beira
fonte
fonte
<a href="https://stackoverflow.com/edit">Edit</a>
Angular garantirá que o clique não crie um recarregamento de página. Esse comportamento pode ser modificado para ativar uma recarga, se desejado.A resposta fornecida está absolutamente correta, mas eu queria expandir para futuros visitantes que queiram fazê-lo um pouco mais dinamicamente -
Na visão -
No controlador -
O mesmo conceito básico da resposta aceita, apenas adicionando algum conteúdo dinâmico a ele para melhorar um pouco. Se a resposta aceita quiser adicionar isso, excluirei minha resposta.
fonte
url
é realmente o endereço da web completo , incluindo o protocolo (http: //) e tudo mais. Como está implícito na$location.path()
sua variável, é melhor descrito como apath
.Eu tenho um exemplo trabalhando.
Aqui está a aparência do meu documento:
Aqui está a aparência da minha parcial:
Aqui está a aparência do meu Ctrl:
app é meu módulo:
Espero que isso seja útil!
fonte
O método usado para todas as respostas anteriores a essa pergunta sugere alterar o URL que não é necessário, e acho que os leitores devem estar cientes de uma solução alternativa. Eu uso o ui-router e o $ stateProvider para associar um valor de estado a um templateUrl que aponta para o arquivo html da sua exibição. Depois, basta injetar o $ state no seu controlador e chamar $ state.go ('state-value') para atualizar sua visualização.
Qual é a diferença entre rota angular e angular-ui-router?
fonte
Existem duas maneiras para isso:
Se você estiver usando o ui-router ou
$stateProvider
, faça-o como:se você estiver usando roteador angular ou
$routeProvider
, faça-o como:fonte
Sem fazer uma reformulação completa do ambiente de roteamento padrão (# / ViewName), pude fazer uma ligeira modificação na dica de Cody e fazer com que funcionasse muito bem.
o controlador
a vista
O que me levou a essa solução foi que, quando estava tentando integrar um widget de interface do usuário do Kendo Mobile em um ambiente angular, estava perdendo o contexto do meu controlador e o comportamento da tag de âncora regular também estava sendo invadido. Restabeleci meu contexto a partir do widget Kendo e precisava usar um método para navegar ... isso funcionou.
Obrigado pelas postagens anteriores!
fonte
Espero que isso ajude você
fonte
Essa pequena função me serviu bem:
Você não precisa do caminho completo, apenas da visualização para a qual está mudando
fonte