Javascript Angularjs$route.reload()不工作
我有一个angular应用程序,我正在尝试刷新页面。我正在尝试许多帖子中建议的Javascript Angularjs$route.reload()不工作,javascript,angularjs,twitter-bootstrap,Javascript,Angularjs,Twitter Bootstrap,我有一个angular应用程序,我正在尝试刷新页面。我正在尝试许多帖子中建议的$route.reload()。但我无法让它工作(Chrome给了我一个错误)。这是我的控制器: var app = angular.module('StudentProgram', ['ngRoute', 'ui.bootstrap', 'jsonService']); app.controller('mycontroller', function($route, RequirementsServi
$route.reload()
。但我无法让它工作(Chrome给了我一个错误)。这是我的控制器:
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.addDegree = function(degree) {
var variablesToSend = {
"acad_program_type": degree.acad_program_type,
"program_title": degree.program_title,
}
}
$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>
</div>
</div>
{%verbatim%}
{{degreeecategory}}
{%endverbatim%}
我在哪里出错?当我点击“刷新”按钮时,页面正在刷新,但调用该函数时,页面不会刷新。您必须确保在index.html中包含angular-route.js(或缩小版),以便在模块中使用ngRoute 如果要将其添加到不想刷新页面的列表中,请将其推送到ng repeat重新重复的数组中。在代码中这样做的一个好地方是成功回调,用于将资源添加到后端。使用 $window.location.reload()而不是$route.reload()
这应该可以解决。对于使用
$route.reload()
您应该注意到$route
取决于$location
和$routeParams
,因此您必须在控制器中插入主题。()根据错误,您似乎忘记了包含路由模块js文件。你已经查过了吗?嗨。我包括了路线。现在错误消失了。但是重新加载并没有发生。。你知道为什么吗?你能确认这篇文章是正确完成的吗?顺便说一句,在这种情况下,使用$resource可能会使您受益。是的。帖子正在完成。当我手动刷新页面时,它也会加载一个包含新帖子的列表。请您发布更多的代码(或者最好是plnkr),包括您定义路由的位置?我不认为有足够的代码块继续提供我编辑的代码。每当我在使用PostGreSql的数据库中插入数据时,我都会调用该函数。每当我添加学位时,我都想重新加载页面,使其显示在html页面中添加的课程列表中。当我手动刷新页面时,它会加载新的更新列表。但是我想让这个刷新功能自动化。它们做的事情不一样location.reload()
刷新整个应用程序,而$route.reload()
只刷新当前路由。请解释一下它是如何工作的?
app.factory('safeApply', [function($rootScope) {
return function($scope, fn) {
var phase = $scope.$root.$$phase;
if(phase == '$apply' || phase == '$digest') {
if (fn) {
$scope.$eval(fn);
}
} else {
if (fn) {
$scope.$apply(fn);
} else {
$scope.$apply();
}
}
}
}]);
/*you have to use above created factory below your $route.reload();
Just Refer Below*/
$http.post('/api/studentacademicprogram/', variablesToSend).then(function(response){
console.log(response);
alert('post added');
$route.reload();
safeApply($scope);
}
/*As the scope is not being watched properly this issue happens */