angularjs和重新加载和重定向提交使用ui.router后 [英] angularjs and reloading and redirect after submit using ui.router

查看:144
本文介绍了angularjs和重新加载和重定向提交使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆