还挺新新的角度。
我有一个网页,我fillout形式,做一个职位。
然后,我想做一个完整的浏览器重装并重定向到被称为created.html另一页。我有一个下拉的导航栏,并提交后,DDL的可见元素应该是什么,我只是在形式创建的。
我重定向,但没有更新我的导航栏模式。只用手动重装。所以......我该怎么办时,重定向到created.html页面全部重新加载?
如果我做的页面下方将重定向,然后重装,但也不是很pretty。
$ window.location.href ='/#/创建';location.reload();堆栈= angular.module('堆栈',['ngAnimate','ui.bootstrap','ui.router']);stack.config(函数($ stateProvider,$ urlRouterProvider){ $ stateProvider .STATE('堆',{ 网址:'/栈, templateUrl:静态/应用/栈/ stack.html', 控制器:'StackCtrl }) .STATE('创造',{ 网址:'/创建, templateUrl:静态/应用/栈/ created.html', 控制器:'StackCtrl })})stack.controller('StackCtrl',函数($范围,$ HTTP,$位置$状态,$窗口){ $ scope.saved = NULL; $ scope.createStack =功能(){ $ HTTP({ 方法:POST, 网址:堆栈, 数据:JSON.stringify({stack_name:$ scope.stackName,stack_namespace:$ scope.stackNameSpace}) 标题:{内容类型:应用/ JSON'} })。然后(函数successCallback(响应){ $ scope.saved =得救; $ scope.isSaveDisabled =真; $ state.go('创造',{},{重载:真的,继承:假}); $ window.location.href ='/#/创建'; },功能errorCallback(响应){ $ scope.saved =得救; $ scope.isSaveDisabled = FALSE; addAlert({类型:危险,味精:'噢卡再试一次提交!'}); }); }})< UL类=NAV导航栏,导航栏导航右> <立GT;<一个UI的SREF =形式>< I>< / I>表格及LT; / A>< /李> <! - 与键盘导航键单 - > <李班=下拉菜单> < A HREF =#类=下拉菜单,切换数据切换=下拉菜单角色=按钮ARIA-haspopup =真正的咏叹调展开=false的> {{selected_stack.stack_name}}&下;跨度类=^符号>&下; /跨度>&下; / A> < UL类=下拉菜单> <李NG重复=栈stack_not_selected>< A HREF =#> {{stack.stack_name}}< / A>< /李> <李作用=分隔符级=分水岭>< /李> <立GT;<一个UI的SREF =堆栈>创建新的堆栈< / A>< /李> < / UL> < /李> < / UL>
解决方案
试试这个
$ state.transitionTo($ state.current,{},{//第二个参数是$ stateParams 重载:真的, 继承:假的, 通知:真});
相关搜索
$ state.transitionTo('redirect.second',toParams,{ 位置:真,继承:假的,重装:真实,通知:真正});
或
$ state.transitionTo('redirect.second',toParams,{位置:真,继承:真的,重载:真的,通知:真正});
另见链接Angular JS - 角UI路由器 - 重装当前状态 - 刷新数据
Kinda new new angular.
I have a page where I fillout a form and do a post.
I then want to do a full browser reload and be redirect to another page called "created.html". I have a dropdown in the nav bar and after the submit the visible element of the ddl should be what I just created in the form.
I am redirected but model in my navbar is not updated. Only with a manual reload. So...how I do a full reload when redirect to the "created.html" page?
if I do the below the page will redirect and then reload but is not very pretty.
$window.location.href='/#/created';
location.reload();
stack = angular.module('Stack', ['ngAnimate', 'ui.bootstrap','ui.router']);
stack.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('stack', {
url: '/stack',
templateUrl: 'static/app/stack/stack.html',
controller: 'StackCtrl'
})
.state('created', {
url: '/created',
templateUrl: 'static/app/stack/created.html',
controller: 'StackCtrl'
})
})
stack.controller('StackCtrl',function ($scope,$http,$location,$state,$window) {
$scope.saved = null;
$scope.createStack = function () {
$http({
method: 'POST',
url: "stack",
data: JSON.stringify({"stack_name":$scope.stackName,"stack_namespace":$scope.stackNameSpace}),
headers: { 'Content-Type': 'application/json' }
}).then(function successCallback(response) {
$scope.saved = "saved";
$scope.isSaveDisabled=true;
$state.go('created', {}, {reload: true,inherit: false});
$window.location.href='/#/created';
}, function errorCallback(response) {
$scope.saved = "saved";
$scope.isSaveDisabled=false;
addAlert({ type: 'danger', msg: 'Oh snap! try submitting again.'});
});
}
})
<ul class="nav navbar-nav navbar-right">
<li><a ui-sref="form"><i></i> Form</a></li>
<!-- Single button with keyboard nav -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> {{selected_stack.stack_name}} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ng-repeat="stack in stack_not_selected"><a href="#">{{stack.stack_name}}</a></li>
<li role="separator" class="divider"></li>
<li><a ui-sref="stack">Create New Stack</a></li>
</ul>
</li>
</ul>
解决方案
Try this
$state.transitionTo($state.current, {}, { //second parameter is for $stateParams
reload: true,
inherit: false,
notify: true
});
Also try
$state.transitionTo('redirect.second', toParams, {
location:true, inherit:false, reload:true, notify:true });
OR
$state.transitionTo('redirect.second', toParams, { location:true, inherit:true, reload:true, notify:true });
Also see the link Angular JS - Angular UI Router - Reloading current state - refresh data