Buenos días,
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:
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider.state('home', {
url: '/home',
templateUrl: 'templates/home.html',
controller: 'HomeCtrl'
});
})
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.
Mi controlador sería este:
Código:
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');
}
})
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.
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