我正在开发一个使用AngularJS和Java的网页。我正在使用REST服务来获取清单描述的地图:
{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>
一切正常,只要地图的值为真,我就会检查值的核对清单。但是,如果我更改现有的&#39; false&#39;是否有一种方法可以增强当前实现以POST请求更新复选框的值为&#39; true&#39;在同一页面中将其发布到其他服务,而不将其重定向到另一个控制器用于更新的新页面?
请提供一些输入或资源链接,以帮助我找到解决方案!谢谢!
答案 0 :(得分:0)
您可以使用&#39; return $ http.post(yourendpointURL)&#39;而不是使用$ resource。在你的服务中。之后在您的控制器中使用延迟方法,例如.then(function(response){ $scope.data = response.data; })
将ngClick添加到您的输入[复选框]以调用控制器中调用$ http服务来更新数据的功能。