I am using angularJs UI router. I defined two controllers like this:
.state('menu.test', {
url : '/test/',
views : {
'menuContent' : {
controller : 'TestController'
}
}
})
.state('menu.test1', {
url : '/test1/',
views : {
'menuContent' : {
controller : 'Test1Controller'
}
}
})
In TestController I have:
angular.module('common.TestController', [])
.controller('TestController', function($scope) {
console.log("TestController");
function test() {
$state.go('menu.test1');
}
setTimeout(test, 3000);
});
And then in Test1Controller:
angular.module('common.Test1Controller', [])
.controller('TestCon1troller', function($scope) {
console.log("Test1Controller");
function test() {
$state.go('menu.test1');
}
setTimeout(test, 3000);
});
I expect to keep seeing the logs, TestController and then Test1Controller. But, please observe that it enters TestController, then it goes to Test1Controller, but then it doesn't make it back into TestController:
.state('menu.test', {
cache : false,
url : '/test/',
views : {
'menuContent' : {
controller : 'TestController'
}
}
})
So cache: false did the trick. Now the controllers are being entered/instantiated.