0

我正在使用AngularJS和Java開發網頁。我耗費了REST服務來獲得一個地圖的清單描述爲:使用angularJS中的相同控制器函數執行GET和POST請求

{checklist:{'sample1': true, 'sample2': false, 'sample3': true}} 

我的控制器如下:

angular.module('checklist.controllers',[]) 
.controller('MyCtrl', ['$scope','CheckFactory', function ($scope,CheckFactory) { 
    CheckFactory.query({}, function (data){ 
    $scope.sample=data.checklist; 
    }); 
}]); 

,我的服務:

angular.module('checklist.services',['ngResource']) 
factory('CheckFactory', ['$resource', function ($resource) { 
    return $resource('#myRESTendpoint', {}, { 
    query: { method: 'GET', params:{} } 
    }); 
}]); 

我已經配置我的app.js相應地和我的HTML:

<label ng-repeat="(key,data) in sample"> 
    <input type="checkbox" ng-model="sample[key]"/> 
    {{key}} 
    <br/> 
</label> 

一切工作正常,每當地圖的值爲true時,我會得到一個檢查值清單。但是,是否有一種方法可以增強當前的實現,以發佈更新請求,如果我在相同頁面中將複選框的現有「假」值更改爲「true」,並將其發佈到其餘服務而不將其重定向到新的與另一個控制器更新頁面?

請提供一些輸入或資源鏈接,可以幫助我找到解決方案!謝謝!

回答

0

您可以使用服務中的'返回$ http.post(yourendpointURL)'來代替使用$ resource。之後,在你的控制器中使用延遲方法,例如.then(function(response){ $scope.data = response.data; })

將ngClick添加到您的輸入[複選框]以調用控制器中調用$ http服務來更新數據的函數。

+0

不能完全得到你的答案。我從過去4天開始研究angular,並試圖獲得一個checklist對象,該對象具有一個值爲key的值作爲描述和值true/false的值映射。我想填充複選框,根據它已有的值進行檢查,如果執行更新並提交更新,則通過使用REST服務的發佈請求更新現有對象。我使用angularJS和後端作爲Java。無法完全掌握如何實現這一點。你能用一個例子來說明你的反應嗎? – masuka