Tengo una aplicación en AngularJs, donde para moverme entre las rutas uso $state.
En mi App.js lo pongo de la siguiente manera:
Código:
De manera que por lo que puedo entender, cada vez que vaya a la ruta "home" cargará la plantilla home.html y el controlador HomeCtrl..config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/'); $stateProvider.state('home', { url: '/home', templateUrl: 'templates/home.html', controller: 'HomeCtrl' }); })
Mi controlador sería este:
Código:
Si desde la plantilla Home.html, llamo a la función newMatch, funciona perfectamente, pero si quiero acceder a la variable que declaro antes de esa funcion llamada $scope.jugador, solo me accede la primera vez, como si una vez cargado el controlador, ya no accediera mas, solo a las funciones interiores.angular.module('starter.controllers', []) .controller('HomeCtrl', function($scope,$state,$rootScope, $ionicPlatform) { $scope.jugador= $rootScope.players; $scope.newMatch = function() { $rootScope.item_position = 0; $rootScope.data = { "code_match": '' }; ($rootScope.players)?[]:new Array(); $state.go('create'); } })
He intentado añadir un ng-init="init()" en la plantilla para que llamase a dicha función cuando entrase en la plantilla, pero pasa lo mismo, solo accede a dicha función la primera vez que carga la plantilla. Si me dirijo mediante $state.go('home') ya no entra.
¿cual puede ser la causa?
Un saludo