2014-05-05 48 views
1

我有一個角度的應用程序,我試圖實現頁面的刷新。我正在嘗試在許多帖子中建議的$route.reload()。但我無法讓它工作。這裏是我的控制器:

var app = angular.module('StudentProgram', ['ngRoute', 'ui.bootstrap', 'jsonService']); 

     app.controller('mycontroller', function($route, RequirementsService, DegreesService, DegreeCategoriesService, DetailsService, ProgramsService, $scope, $modal, $log, $http) { 
      ProgramsService.getItems(function(data){ 
     $scope.programs = data; 
     console.log(data); 
     }); 

     $scope.$route = $route; 
     //$scope.programs=ProgramsService.query(); 

     DegreeCategoriesService.query(function(data){ 
     $scope.degreecategories = data; 
     console.log(data); 
     }); 

     DetailsService.query(function(data){ 
     $scope.details = data; 
     console.log(data); 
     }); 

     RequirementsService.getRequirements(function(data){ 
     $scope.requirements = data; 
     console.log(data); 
     }); 

      $scope.addDegree = function(degree) { 
      var variablesToSend = { 
             "student": 2773951, 
             "credits_completed": 0, 
             "academic_program_gpa": 0, 
             "primary_program": false, 
             "academic_program": { 
              "id": degree.id, 
              "acad_program_category": degree.acad_program_category, 
              "acad_program_type": degree.acad_program_type, 
              "program_title": degree.program_title, 
              "required_credits": degree.required_credits, 
              "min_gpa": degree.min_gpa, 
              "description": "description of the course", 
              "colleges": degree.colleges 
             } 
            } 
      $http.post('/api/studentacademicprogram/', variablesToSend).then(function(response){ 
       console.log(response); 
       alert('post added'); 
       $route.reload(); 
      }, function(response){ 
       console.log(response); 
       alert('post not added'); 
      }); 
      }; 

這裏是div我在哪裏訪問功能:

<div ng-show="display.academicdegrees" class="col-lg-8 col-md-8 col-sm-8"> 
       <div class="panel panel-warning list-group list-unstyled" data-spy="scroll" data-target="#panelcategory" data-offset="0" style="max-height:400px;overflow:auto;position:relative;"> 
        <div class="panel-heading"> 
         {% verbatim %} 
         <h3 class="panel-title">{{DegreeCategory}}</h3> 
         {% endverbatim %} 
        </div> 
        <li ng-repeat="degree in degrees" class="list-group-item"> 
         {% verbatim %}<strong>{{degree.program_title}}</strong>{% endverbatim %} 
         <p>{% verbatim %}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{degree.description}}</p> 
         <span ng-repeat="college in degree.colleges"> 
          <i><img ng-src="/static/icons/{{college}}.png" /></i> 
         </span>{% endverbatim %} 
         <span class="pull-right btn btn-success" ng-click="addDegree(degree)">Add</span> 
        </li> 

       </div> 
      </div> 

我在哪裏做的錯誤?當我點擊刷新按鈕時該頁面會刷新,但當我調用該函數時不會發生。

+0

什麼是錯誤您收到? – Shivaraj

+0

並粘貼你的routeProvider。 – Shivaraj

+0

我沒有收到任何錯誤。我需要給$ route.reload()中的任何url嗎? – user2062360

回答

0

我正面臨類似的問題,我一直無法找到任何解決方案,所以我使用了一個替代的黑客使用$ location重定向到同一頁面。 Ofcourse我想知道真正的解決辦法,但是這是怎麼了我使用了一個臨時hack-

$window.location.href='http://yoursite.com' 

將繼續尋找更好的東西。不要忘記將$ location注入到控制器中。

0

試試這個

$state.transitionTo($state.current, $stateParams, { reload: true, inherit: true, notify: true }); 

或本

$state.go($state.$current, null, { reload: true }); 
相關問題