I have checked some of the topics for this matter and i got an understanding of controllers are there to initiate scope and i need to use services for this matter but i dont know how.
so here is the problem. i have index page which body has only one div and inside the div i have ng-include listening to a function called viewFile() which is described on controllerA. on the first initial attempt i load a view called login.html and display it. when users logs in and its successful, which are handled in controllerB, i return a token and now i want to load main.html page using viewFile() in controllerA. is there a call back function or notify controller or something for this? or can i write a service that takes care of this for me?
I'm not using ngRoute because i dont want my URL to change to mysite.com/#/login.html and then mysite.com/#/main.html
.controlle("A", function ($scope, sharedVariable){ $scope.token = sharedVariable.getToken(); $scope.viewFile = function(){ if($scope.token == "") return "view/Login.html"; else return "view/main.html"; } } .controller("B", function ($scope, $http, sharedVariable)){ http({ get ... .success: function(data){ $scope.token = sharedVariable.setToken(); // INVOKE viewFile from above controller } }) } and here is the index.html body part
<body> <div ng-controller="A"><ng-include src="viewFile()"></ng-include></div> </body>