2015-11-01 72 views
2

有点新的新角。angularjs和使用ui.router提交后重新加载和重定向

我有一个页面,我填写表单并做一个职位。

然后我想做一个完整的浏览器重新加载并重定向到另一个名为“created.html”的页面。我在导航栏中有一个下拉列表,在提交ddl的可见元素之后,应该是我刚刚在表单中创建的元素。

我被重定向,但我的导航栏中的模型未更新。只有手动重新加载。所以...当重定向到“created.html”页面时,我如何完成重新加载?

如果我做下面的页面将重定向,然后重新加载,但不是很漂亮。

$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> 
+0

导航栏中应该发生什么?你可以发布相关的代码吗? –

+0

添加了导航条形码。在登录时,我加载了导航ddl并加载。我想创建一个新项目,然后成为标题。所以我做了一个重新加载。 – Tampa

回答

1

试试这个

$state.transitionTo($state.current, {}, { //second parameter is for $stateParams 
    reload: true, 
    inherit: false, 
    notify: true 
}); 

也可以尝试

$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 }); 

另见链接Reloading current state - refresh data

+0

我会在哪里放入该片段? – Tampa

+0

而不是$ state.go('created',{},{reload:true,inherit:false});并cmment这一行$ window.location.href ='/#/ created'; – Shohel

+0

它重新加载但不重定向到“已创建”。我如何修改重定向到创建? – Tampa