javascript - AngularJS with ui-router: Changing value of a parent dependency of from child's controller -
environment: angularjs application (using ui router) has nested states.
short version: how change value of parent-state's dependency inside child's controller, such siblings of child state, using dependency new value.
long version: take following configuration:
shopapp.config(function($stateprovider) { $stateprovider.state('shop', { url : '/shop', templateurl : 'shop.html', resolve : { user : function($q) { // callback ends returning null // because user not logged in } }, controller: function($scope, user) { // user null @ point $scope.user = user; } }).state('shop.login', { url : '/login', templateurl : 'login.html', controller : function($scope) { // onloggedin called form-processing // logic once user has logged in $scope.onloggedin = function(userobject) { // want shop.userdetails state's controller // new $scope.user value $scope.user = userobject; $state.go('^.userdetails'); }; } }).state('shop.userdetails', { url : '/userdetails', templateurl : 'userdetails.html', controller : function($scope, user) { // unfortunately user null here $scope.user = user; } }); });
the shop.login state's controller has function called onloggedin that's called once user has logged in successfully. object containing user-information passed function. point on want resolutions of user dependency use value (i.e userobj). unfortunately, instead of using value i've assigned $scope.user, seems value gets passed controller of shop.userdetails 1 resolved when shop state's controller created.
does know how this? if i'm doing wrong please tell me.
one way of doing want define userdetailsservice
holds logged in user information. set user information on login , resolve user
value using service.
Comments
Post a Comment