我有一个从JSON调用到我的服务器构建的事件列表。该列表通过ng-repeat进行解析。我想为事件实现一个类似的按钮,如果它喜欢,用不同的替换它。
<a ng-show='event.liked==null' ng-click="like(event.event_id)">Like</a>
<a ng-show='event.liked!=null' ng-click="unLike(event.event_id)">Unlike</a>
一切都很完美,除非我必须刷新Feed以显示“不同”。有没有办法可以更新一次点击后喜欢的索引的特定列表项,而无需刷新。
如果您需要更多信息,请与我们联系。谢谢!
编辑:添加类似功能&amp;不像功能。它所做的就是向我的服务器发送请求,使其与event_id和用户令牌相似或不同。
$scope.like = function (event_id) {
var url = www.server.com?type=unlike&event_id=...
$http.post(url).success(function (data) {
console.log('success like');
//I want it to update my index here
}).error(function (data) {
console.log('fail like');
});
};
$scope.unLike = function (event_id) {
var url = www.server.com?type=unlike&event_id=...
$http.post(url).success(function (data) {
console.log('success unlike');
//I want it to update my index here
}).error(function (data) {
console.log('fail unlike');
});
};
答案 0 :(得分:1)
不是传入event_id
,而是将对象传递给like
和unLike
函数,并在成功处理程序中更新对象。
<强> HTML 强>
<a ng-hide='event.liked' ng-click="like(event)">Like</a>
<a ng-show='event.liked' ng-click="unLike(event)">Unlike</a>
<强>控制器强>
$scope.like = function(event) {
var url = 'www.server.com?type=unlike&event_id=' + event.event_id;
$http.post(url).success(function (data) {
event.liked = true;
console.log('success like');
}).error(function (data) {
console.log('fail like');
});
};
$scope.unLike = function(event) {
var url = 'www.server.com?type=unlike&event_id=' + event.event_id;
$http.post(url).success(function (data) {
event.liked = null;
console.log('success unlike');
}).error(function (data) {
console.log('fail unlike');
});
};