angularjs和重新加载和重定向提交使用ui.router后 [英] angularjs and reloading and redirect after submit using ui.router
问题描述
还挺新新的角度。
我有一个网页,我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,{位置:真,继承:真的,重载:真的,通知:真正});
另见链接<一个href=\"http://stackoverflow.com/questions/21714655/angular-js-angular-ui-router-reloading-current-state-refresh-data\">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
这篇关于angularjs和重新加载和重定向提交使用ui.router后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!