【发布时间】:2016-04-26 12:37:13
【问题描述】:
在刷新页面时,我在使用 angularJS 时遇到了几个问题。用户登录成功后,如果刷新页面,所有 $scope 都会丢失。用户必须再次登录然后注销。我遇到的另一个问题是当用户注册和事件时,他们可以查看用户仪表板中的所有事件。在用户仪表板中,他们将事件放在带有“删除”按钮的“卡片”中。查看“下面的事件卡代码”
** 下面的事件卡**
<div class="container-fluid">
<div class="row">
<div class="col m3 l3" ng-repeat="items in userEvents">
<div class="card">
<div class="card-image">
<img src="/images/uploads/{{items.eventImage}}"/>
<span class="card-title">{{ items.title }}</span>
</div>
<div class="card-content">
<p>{{ items.description }}</p>
</div>
<div class="card-action"> <!--BREAKING STUFF HERE!-->
<a class="waves-effect waves-light btn" ng click="updateEvent(items._id)" ui-sref="updateDash">Edit</a>
<a class="waves-effect waves-light btn" ng-click="deleteEvent(items._id)">Delete</a>
</div>
</div>
</div>
并且 ng-click="deleteEvent(items.id) 由下面的代码触发。
** dashCtrl.js **
angular.module("socialApp")
.controller('DashCtrl', function($scope, dashFactory, infoFactory, $rootScope, $http, $window) {
$scope.userEvents = {};
$scope.id = $rootScope.loggedUser;
//populates the page with events linked to userID
dashFactory.getUserEvents($scope.id)
.then(function(events) {
$scope.userEvents = events;
console.log("1st", $scope.userEvents);
// console.log(events);
});
//deletes event by eventId
$scope.deleteEvent = function(id){
$scope.eventId = id;
//console.log($scope.eventId);
$http.delete('events/deleteEvent/'+id)
.then(function(results){
console.log(results);
$window.location.reload();
})
}
我放置了 $window.location.reload();刷新页面,以便已删除的“事件卡”不会显示在页面上,但页面似乎破坏了事件卡并且用户 $scope 丢失了,而不是发生这种情况。我的导航栏按钮变为登录和注册按钮,就好像没有用户登录一样。
请帮忙!!
【问题讨论】:
-
您如何获取您的
userEvents数据?或通过 api/服务?也请放一些error -
@kiro112 也许这次更新会有所帮助?
-
userEvents的数据类型是什么?对象还是数组?
标签: angularjs