修改单击功能内的列表子集

时间:2013-10-12 05:14:22

标签: javascript angularjs

我有一个模型列表,我使用以下ng-click指令进行渲染:

<div id="pair" ng-repeat="question in session.questions | filter:{'answered':qfilter}">

在这些问题中,我有一个投票按钮,在点击时调用投票方法:

<a href="#" ng-click="vote(question, 1)" ng-class="{upvote: question.score == 1}">&#x25B2;</a><br/>

请注意,此ng-click指令将问题变量传递给我的函数。

这是投票功能:

$scope.vote = function(question, val){
    $scope.apply(function(){
        if(question.vote == val){
            question.vote = 0;
        }else{
            question.vote = val;
        }
        $http({
            method: 'POST',
            url: question.resource_uri+"vote/",
            data: $.param({vote:question.vote}),
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        });
    })
}

此功能被称为正常,并且该帖子已成功提交。唯一的问题是,即使在运行$ scope.apply之后,仍然没有在UI中更新question.vote的值。我猜它与ng-repeat复制数组有关,因此修改新问题不会反过来修改范围内的问题。

我还尝试通过返回投票并使用此ng-click来更新内联范围:

<a href="#" ng-click="question.vote = vote(question, -1)" ng-class="{downvote: question.score == -1}">&#x25BC;</a>

0 个答案:

没有答案