angularjs - ionic state controller doesn't execute after $state.go -
i'm experiencing issues ionic , it's state functionnality.
basically, i'm retrieving data distant server, display in view/state.
if user clicks on 1 of element display calls scope function changes $state via $state.go('other_view',{params}) call... until here no problems, thing when change state, controller assigned state doesn't execute, can't display simple console.log("hello").
here's simple illustration of i'm experiencing.
var incarooms = angular.module('inca.rooms', ['ionic','ui.router', 'cb.x2js','ngsanitize']) // ---------------------------- // config app (routing) // ---------------------------- .config(function($stateprovider, $urlrouterprovider) { $stateprovider .state('rooms',{ url: '/rooms', templateurl: 'scripts/rooms/rooms.html', controller : controllers.roomscontroller, resolve : { // data loading jsondata : function($http) { return $http.get("assets/data.xml") .then(function (data) { // promise var x2js = new x2js(); jsondata = x2js.xml_str2json(data.data); return jsondata; }); } }, cache : false }); }); ///////////////// // controllers // ///////////////// var controllers = {}; // rooms controllers.roomscontroller = roomscontroller; incarooms.controller('getters', controllers.roomscontroller); /////////////////////// // general functions // /////////////////////// function getunit(jsonresult,unit_id){ var infounit = jsonresult.unit_list.unit; return infounit; } ///////////////// // controllers // ///////////////// function roomscontroller($scope,$state, $ionichistory, $ionicpopup, $ionicscrolldelegate,$ionicloading, jsondata){ var unit = getunit(jsondata,0); $scope.unit = unit; $scope.selectroom = function(index){ $state.go('patients',{'indexroom' : index, 'jsondata' : json.stringify(jsondata)}); } }
this state/view leads similar one, next state/view's controller doesn't execute once loaded.
var incapatients = angular.module('inca.patients', ['ionic','ui.router', 'cb.x2js','ngsanitize']) // ---------------------------- // config app (routing) // ---------------------------- .config(function($stateprovider, $urlrouterprovider) { $stateprovider .state('patients',{ url: '/patients/{indexroom}{jsondata}', templateurl: 'scripts/patients/patients.html', controller : controllers.patientscontroller, cache : false }); }); ///////////////// // controllers // ///////////////// var controllers = {}; // patients controllers.patientscontroller = patientscontroller; incapatients.controller('getters', controllers.patientscontroller); /////////////////////// // general functions // /////////////////////// function getroom(jsonresult,unit_id,room_id){ var infopatient = jsonresult.unit_list.unit.room[room_id]; return infopatient; } ///////////////// // controllers // ///////////////// function patientscontroller($scope,$state, $ionichistory, $ionicpopup, $ionicscrolldelegate,$ionicloading){ var jsondata = json.parse($state.params.jsondata); var indexroom = $state.params.indexroom; console.log("hello"); }
any clue on why console.log isn't executed ?
thanks in advance time , help.
i had same problem. fixed set cache-view attribute of ion-view element false.
<ion-view title="view title" ng-controller="somectrl" cache-view="false"> ... </ion-view>
Comments
Post a Comment