我正在使用Laravel和AngularJS开发一个应用程序,用户可以在其中编写和删除他们的评论。
在主屏幕上,用户可以查看和删除他/她的所有评论,当他们这样做时,列表应该更新。
我的问题是,当我按下删除按钮时,我被重定向到默认路由的登录页面。
$routeProvider.otherwise({ redirectTo : '/login' });
我正在使用laravels资源控制器
Route::resource('comment', 'CommentController');
当我再次进入主页时,评论被成功删除。
我的评论服务使用这个来删除评论:
app.factory('CommentService', function($http) {
return {
destroy: function(id) {
return $http.delete('comment/' + id);
}
};
});
在home控制器中,我创建了这个函数来删除注释。
app.controller('homeController', function($scope, $location, AuthenticationService, CommentService) {
$scope.deleteComment = function(id) {
CommentService.destroy(id).success(function() {
CommentService.get().success(function(data) {
$scope.comments = data;
$scope.order = 'end_date';
});
});
};
当我删除评论时,如何防止网站重定向到登录页面?
最好是重定向到最近的页面,如果我登录,如果我没有,我应该重定向到登录页面。(例如,如果我在主页,那么如果我在url中键入不存在的内容或删除评论,我将被重定向到主页)
登录系统是由David Mosher根据这些教程创建的:
Angular JS简介
End to End with Angular JS
Angular JS的安全性
不确定你是否已经弄清楚了,但是如果有人在这里着陆,下面一件事可能是负责的(并且在我刚刚调试完的代码中):
<a href="#" ng-click="deleteComment()">x</a>
这将运行deletecomement并遵循路由#
。添加href="#"
(或href=""
)是一个坏习惯,<a></a>
可以不使用href,在这种情况下,应该这样做。所以不需要重定向也可以:
<a ng-click="deleteComment()">x</a>
希望它能帮助那些降落在这里的人;)