Estoy tratando de usar la función ng-click de AngularJS para cambiar de vista. ¿Cómo haría para hacer esto con el siguiente código?
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
Al borde
fuente
fuente
<a href="https://stackoverflow.com/edit">Edit</a>
Angular se asegurará de que el clic no cree una recarga de página. Este comportamiento se puede modificar para que active una recarga si se desea.La respuesta proporcionada es absolutamente correcta, pero quería expandirme para cualquier visitante futuro que quiera hacerlo de manera más dinámica:
En la vista
En el controlador
El mismo concepto básico que la respuesta aceptada, solo agregando contenido dinámico para mejorar un poco. Si la respuesta aceptada quiere agregar esto, eliminaré mi respuesta.
fuente
url
es en realidad la dirección web completa , incluido el protocolo (http: //) y todo. Como lo implica$location.path()
su variable, se describe mejor como apath
.Tengo un ejemplo funcionando.
Así es como se ve mi documento:
Así es como se ve mi parcial:
Así es como se ve mi Ctrl:
la aplicación es mi módulo:
Espero que esto sea útil!
fuente
El método utilizado para todas las respuestas anteriores a esta pregunta sugiere cambiar la URL, lo que no es necesario, y creo que los lectores deberían conocer una solución alternativa. Uso ui-router y $ stateProvider para asociar un valor de estado con una templateUrl que apunta al archivo html para su vista. Entonces es solo una cuestión de inyectar el $ state en su controlador y llamar a $ state.go ('state-value') para actualizar su vista.
¿Cuál es la diferencia entre angular-route y angular-ui-router?
fuente
Hay dos formas para esto:
Si está utilizando ui-router o
$stateProvider
, hágalo como:si está utilizando un enrutador angular o
$routeProvider
hágalo como:fuente
Sin hacer una renovación completa del entorno de enrutamiento predeterminado (# / ViewName), pude hacer una ligera modificación de la sugerencia de Cody y conseguí que funcionara de maravilla.
el controlador
la vista
Lo que me llevó a esta solución fue que cuando intentaba integrar un widget Kendo Mobile UI en un entorno angular, estaba perdiendo el contexto de mi controlador y el comportamiento de la etiqueta de anclaje normal también estaba siendo secuestrado. Restablecí mi contexto desde el widget de Kendo y necesitaba usar un método para navegar ... esto funcionó.
Gracias por las publicaciones anteriores!
fuente
Espero que esto te ayudará
fuente
Esta pequeña función me ha servido bien:
No necesita la ruta completa, solo la vista a la que está cambiando
fuente