使用节点在Angularjs中保存复选框列表

使用节点在Angularjs中保存复选框列表,angularjs,Angularjs,我想使用带有节点后端的angularjs中的绑定来保存和加载复选框列表。这个问题()回答了如何从静态javascript对象加载复选框,但如何在用户选择复选框值后保存它们 我想将复选框值保存在一个字段中,但如何让angular将复选框值绑定到mongodb模型中定义的单个字段中?我不能只使用ng模型,因为有多个复选框 不用说,我是新来的,所以这里的任何帮助都是非常感谢的 谢谢你能提供的帮助 kseudo只需在复选框中添加ng model。通过这种方式,您可以在任何复选框状态更改时更新控制器中的模

我想使用带有节点后端的angularjs中的绑定来保存和加载复选框列表。这个问题()回答了如何从静态javascript对象加载复选框,但如何在用户选择复选框值后保存它们

我想将复选框值保存在一个字段中,但如何让angular将复选框值绑定到mongodb模型中定义的单个字段中?我不能只使用ng模型,因为有多个复选框

不用说,我是新来的,所以这里的任何帮助都是非常感谢的

谢谢你能提供的帮助


kseudo

只需在复选框中添加
ng model
。通过这种方式,您可以在任何复选框状态更改时更新控制器中的模型

下面是一个例子:

HTML

<div ng-controller="Ctrl">
    <label ng-repeat="fruit in fruits">
  <input
    type="checkbox"
    name="fruit.name"
   ng-model="fruit.value"
  > {{fruit.name}}
</label>
    <pre>{{fruits| json}}</pre>    
</div>
演示

[编辑]

顺便说一句,我们可以使用
angular.copy()
方法进行复制。当我们按下按钮时,将创建
fruits
模型的新副本(您应该将其作为json发送到服务器)。旧款
水果
将保持不变:

var jsonData = JSON.stringify($scope.fruitsCopy);
要将数据转换为JSon,我将使用:

function Ctrl($scope) {
    $scope.items = [{
      name: 'A',
      checked: false
    }, {
      name: 'B',
      checked: false
    }, {
      name: 'C',
      checked: false
    }, {
      name: 'D',
      checked: false
    }];
}

演示2

假设您将模型定义为:

<ul>
   <li ng-repeat="item in items">
      <label>
        <input type="checkbox" ng-model="item.checked">
        {{item.name}}
      </label>
   </li>
</ul>
<button ng-click="save()">save</button>
并为模型创建了一个视图:

$scope.save = function() {
  //angular.toJson converts array to string, something like
  // '[{"name":"A","checked":false},{"name":"B","checked":true},...]'
  var json = angular.toJson($scope.items);
  //Service is angular service for your model that makes http requests to your backend
  Service.save(json).then(function(){
    //here you can notify user that data is persisted
  }, function() {
    //here you can notify user that there was a problem with request
  });
}
和一个简单的模型服务:


谢谢你的快速回复格言。我想将复选框值保存为模型字段中的json字符串。因此,当用户单击save时,将生成以下字符串:[{name:'apple',checked:true},{name:'orange',checked:false}],并保存到类似team.fruits的模型中。你能建议我如何使用状态更改来实现这一点的一些代码吗?再次感谢。再次感谢您的超级快速回复格言。如何将{{fruits | json}}计算的值传递给控制器,以便将其保存到模型字段,例如“foods.fruits”?目前,我看不出这个值是如何传递给控制器的……控制器有
$scope.fruits
-这是您的模型,如果您使用GUI(用基本的话)进行lpay,这个模型会发生变化。这大约需要四个小时,但我终于有了一个复选框,可以正确保存和填充。非常感谢Maxim花时间来帮助我。最后一件事:我为什么要复制水果模型?我认为这一定与范围有关,但我很难理解这一点。。。
<ul>
   <li ng-repeat="item in items">
      <label>
        <input type="checkbox" ng-model="item.checked">
        {{item.name}}
      </label>
   </li>
</ul>
<button ng-click="save()">save</button>
$scope.save = function() {
  //angular.toJson converts array to string, something like
  // '[{"name":"A","checked":false},{"name":"B","checked":true},...]'
  var json = angular.toJson($scope.items);
  //Service is angular service for your model that makes http requests to your backend
  Service.save(json).then(function(){
    //here you can notify user that data is persisted
  }, function() {
    //here you can notify user that there was a problem with request
  });
}
.service('Service', function($http) {
   return new function() {
     this.save = function(data) {
       return $http.post('url/to/backend', data);
     }
   }
 });