使用ui-router
,我有一个具有解析功能的状态:
.state('tab.social', {
url: '/social/',
views: {
'menuContent': {
templateUrl: 'templates/social/tab-social.html',
controller: 'SocialCtrl',
resolve: {
socialAuthResolve: socialAuthResolve
}
}
}
})
我按如下方式捕获控制器中的分辨率:
.controller('SocialCtrl', function($scope, SocialAuth, socialAuthResolve) {
//
console.log(socialAuthResolve);
//
$scope.logOut = function() {
SocialAuth.logOut();
$state.go('tab.social', {}, {reload: true});
};
//
$scope.logIn= function() {
SocialAuth.logIn();
$state.go('tab.social', {}, {reload: true});
};
})
但是,当按下logOut
或logIn
时,我的状态不会刷新。我正在使用解析socialAuthResolve
中的一些参数,并希望更新此参数。在这种情况下,旧参数仍在那里。
只有当我刷新浏览器时,变量和页面才会相应更新。如何在logOut
和logIn
之后刷新页面?例如,强行再次解决?
答案 0 :(得分:1)
以下是config:
的示例状态.state('app.stateName', {
url: "/theUrl",
views: {
'myViewName': {
templateUrl: "templates/template.html",
controller: 'SomeController',
resolve: {
pleaseResolve: function() {
console.log("I am resolved");
}
}
}
}
})
在我的控制器中(假设SomeController
如上所述),每当我进入状态时,我就会运行它。
var res = ($state.$current.self.views.myViewName.resolve.pleaseReslove)
res.call()
每次进入视图时,都会调用我的解析函数。