0
我有一堆在我的數據庫「活動」的:如何在AngularJS中單擊後更新模型?
{"name" : "Apple", "status" : "active"}
{"name" : "Orange", "status" : "paused"}
我展示他們的角與:
<span ng-switch on="campaign.status">
<a ng-switch-when="active" ng-click='setStatus($index, "paused")'>Pause</a>
<a ng-switch-when="paused" ng-click='setStatus($index,"active")'>Activate</a>
</span>
然後在我控制我使用更新服務器的數據庫狀態一個API(其返回更新條目的JSON。
$scope.setStatus = function(index, newstatus) {
var item = $scope.campaigns[index];
var url = 'api.mysite.com/' + newstatus + '/' + item._id.$oid;
if (! $scope.isComplete(item))
{
$http({method: 'GET', url: url}).
success(function(data, status, headers, config) {
$scope.campaigns[index] = data;
}). error(function(data, status, headers, config) {
console.log('Error communicating with the server.');
});
}
}
其中變量campaigns
是從檢索到的所有廣告活動的陣列服務器當控制器與初始化:
$scope.connection = $resource('api.mysite/getallcampaigns');
$scope.campaigns = $scope.connection.query();
這似乎是非常的混亂已經和我敢肯定,我使用AngularJS正確:(最主要的是,我傳遞到控制器的索引我正在修改的元素,如果我重新排列數組,它會中斷。我怎樣才能讓Angular爲我打好這根線?什麼是最小和正確的方法來做到這一點?
您可以使用indexOf。檢查這個例子。 http://jsfiddle.net/KNM4q/113/ – SunnyShah