构建后重复更新

时间:2014-02-21 02:46:03

标签: javascript html angularjs

我有一个从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');
    });
};

1 个答案:

答案 0 :(得分:1)

不是传入event_id,而是将对象传递给likeunLike函数,并在成功处理程序中更新对象。

<强> 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');
    });
};