dra*_*fly 8 angularjs angular-ui-router
我已切换到ui-router.一切顺利,除了一件事.在我的页面上,我有一个选择,可以更改应用程序的上下文.无论如何,以前,当这个上下文被改变时,我正在执行这个代码(特别是set方法):
'use strict';
angular.module('main').factory('lacContext', ['$route', function ($route) {
return {
set: function (id) {
sessionStorage.setItem("lac-context", id);
$route.reload();
},
get: function () {
return sessionStorage.getItem("lac-context");
}
};
}])
Run Code Online (Sandbox Code Playgroud)
和
$route.reload()
Run Code Online (Sandbox Code Playgroud)
做了最重要的事情.它重新加载了页面.但是在切换到ui-router之后,$ route.reload什么也没做.我也没有在ui-router API中找到对应的.如何解决这个问题?
dev*_*ave 37
怎么样:
$state.go($state.$current, null, { reload: true });
Run Code Online (Sandbox Code Playgroud)
你可以做 $state.reload()
它有一个错误,有时不会重新实例化控制器.你可以解决这个问题
$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true });
Run Code Online (Sandbox Code Playgroud)
好吧,当我将$ state注入控制器时它会起作用.
但是当它像代码片段一样注入服务时,当然$ state是未定义的.
虽然
$state.go('.')
Run Code Online (Sandbox Code Playgroud)
不起作用,我做了这样的事情:
$stateProvider
.state('home', {
controller: function ($state) {
$state.go('advisoryLeadOffering.packages');
}
})
.state('advisoryLeadOffering.packages', {
url: "/packages",
templateUrl: "/AdvisoryLeadOffering/Packages",
controller: 'AdvisoryLeadOfferingPackages'
})
Run Code Online (Sandbox Code Playgroud)
当我需要重新加载时,我会做这样的事情:
$state.transitionTo('home');
Run Code Online (Sandbox Code Playgroud)
内部范围的方法.
| 归档时间: |
|
| 查看次数: |
20663 次 |
| 最近记录: |