在angularJS

时间:2015-10-21 01:06:24

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我正在开发一个使用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;在同一页面中将其发布到其他服务,而不将其重定向到另一个控制器用于更新的新页面?

请提供一些输入或资源链接,以帮助我找到解决方案!谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用&#39; return $ http.post(yourendpointURL)&#39;而不是使用$ resource。在你的服务中。之后在您的控制器中使用延迟方法,例如.then(function(response){ $scope.data = response.data; })

将ngClick添加到您的输入[复选框]以调用控制器中调用$ http服务来更新数据的功能。