Angularjs 如何从$scope更新项使用$resource保存后重复

Angularjs 如何从$scope更新项使用$resource保存后重复,angularjs,angularjs-ng-repeat,angularjs-service,angular-resource,Angularjs,Angularjs Ng Repeat,Angularjs Service,Angular Resource,我有一个角度视图,其中显示了一个项目列表,每个项目都有两个按钮,用于将每个活动设置为暂停/开始。我知道angular$resource存在一个非常基本的问题,但我无法在success$start时更新该项(在success回调中,我无法访问与该项相关的任何内容) 我认为: <div ng-repeat="campaign in campaigns"> <button type="button" ng-show="campaign.status==0" ng-click

我有一个角度视图,其中显示了一个项目列表,每个项目都有两个按钮,用于将每个活动设置为暂停/开始。我知道angular$resource存在一个非常基本的问题,但我无法在success$start时更新该项(在success回调中,我无法访问与该项相关的任何内容)

我认为:

<div ng-repeat="campaign in campaigns">
     <button type="button" ng-show="campaign.status==0" ng-click="startCampaign(campaign)" class="btn"><i class="icon-play"></i></button>
     <button type="button" ng-show="campaign.status==1" ng-click="pauseCampaign(campaign)" class="btn"><i class="icon-pause"></i></button>
</div>

这是一个与闭包/范围相关的问题,而不是角度本身。在成功处理程序中,
不再是作用域,因此无法访问
此.campaign
。实际上,你可以用多种方法来解决这个问题

我相信,简单的方法是接收
活动
作为参数,然后从那里引用它:

您的HTML中已包含此内容:

ng click=“启动公司(活动)”
因此,接受并使用它:

$scope.startCampaign=功能(活动){
var c=新活动(活动);
c、 $start(功能成功(响应){
campaign.status=1;
},
...
};
<div ng-repeat="campaign in campaigns">
     <button type="button" ng-show="campaign.status==0" ng-click="startCampaign(campaign)" class="btn"><i class="icon-play"></i></button>
     <button type="button" ng-show="campaign.status==1" ng-click="pauseCampaign(campaign)" class="btn"><i class="icon-pause"></i></button>
</div>