2014-05-05 101 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 }); 
相关问题