AngularFire:将复选框数据添加到Firebase

时间:2015-04-27 00:52:33

标签: javascript angularjs firebase angularfire

我试图弄清楚如何将表单中的数据(特别是复选框中的数据)添加到Firebase。

providersservices是我的Firebase中的两个单独项目。我在ng-repeat上使用providers来生成我的复选框。

<form ng-submit="addService(service)">
  <input type="text" name="name" ng-model="service.name">
  <label for="{{ provider }}" ng-repeat="provider in providers">
    <input type="checkbox" name="provider" id="{{ provider }}" ng-model="provider.name">
    {{ provider.name }}
  </label>
  <button type="submit">Submit</button>
</form>

我的addService()函数看起来像这样:

$scope.addService = function(service) {
  services.$add({
    name: service.name
  })
};

我试图弄清楚如何将每个所选复选框的key传递给addService()函数,所以看起来像这样:

"providers" : {
  "provider1" : { "name" : "The Whittington Hospital" },
  "provider2" : { "name" : "Homerton Hospital" },
  ...
},
"services" : {
  "service1" : {
    "name" : "Hernia Repair",
    "providers" : {
      "provider1" : true,
      "provider2" : true
    }
  }
  ...
}

任何有关如何做这样的事情的帮助将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只希望获得一个选定(或未选定)的工厂清单?

如果是这样,一种简单的方法是创建一个名为selection的对象,其中选择了factories。单击提交按钮后,您可以调用Firebase服务以添加具有相关信息的对象(服务名称,所选工厂列表),然后清除selection等等。 / p>

您还可以使用$watchCollection观看此选择集,因此只能维护所选项目的列表。

我在这里创建了一个demo来说明第一个解决方案。