2015-11-01 73 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