Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 向firebase提交多个复选框_Angularjs_Firebase_Angularfire - Fatal编程技术网

Angularjs 向firebase提交多个复选框

Angularjs 向firebase提交多个复选框,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我正在使用Angularfire,我想通过多个复选框保存数据 HTML 这就是结果 student --Alison Kay: true --Jessica Cook:false --John Smith: true --Kevin Hunt: true 我的问题是,有没有办法像这样拯救他们 student --(key) --name:Alison Kay --checked: true --(key) --name:Jessica Cook --checked: f

我正在使用Angularfire,我想通过多个复选框保存数据

HTML

这就是结果

student
 --Alison Kay: true
 --Jessica Cook:false
 --John Smith: true
 --Kevin Hunt: true
我的问题是,有没有办法像这样拯救他们

student
--(key)
  --name:Alison Kay
  --checked: true
--(key)
  --name:Jessica Cook
  --checked: false
--(key)
  --name:John Smith
  --checked: true
--(key)
  --name:Kevin Hunt
  --checked: true
我拼凑了一个粗略的例子来演示一种方法

请注意,文件说明:

这些技术只能由熟悉代码的高级用户尝试


解决方案 您可以创建一个扩展
$firebaseObject
的工厂,并添加一个方法
.addTask()
,该方法使用
.push()
为新任务生成新密钥

工厂:
app.factory(“任务列表”,函数($rootScope,$q,fbUrl,TaskListFactory){
返回函数(studentKey){
var ref=新Firebase(fbUrl+'/tasks/'+studentKey);
返回新任务列表工厂(ref);
}
});
app.factory(“TaskListFactory”,函数($firebaseObject、$q、fbUrl、$rootScope){
返回$firebaseObject.$extend({
addTask:函数(名称,选中){
//使用push生成新密钥,设置'name'和'checked'`
this.$ref().push({name:name,checked:checked},函数(错误){
如果(!错误){
控制台错误(error);
}否则{
log(“推送新任务”);
}
});
}
});
});
控制器: 注意:我使用模拟对象。我无法解码您的数据结构,因此采用了最佳猜测方法

app.controller('HomeController',函数($scope,fbUrl,$firebaseObject,TaskList){
//创建模拟学生和任务
$scope.students={tester:{name:'tester'}};
$scope.task={tester:{name:'testthis'}};
var taskList=new taskList('student123');
//获取调试任务列表:
var tasksRef=新Firebase(fbUrl+'/tasks');
$scope.tasks=$firebaseObject(tasksRef);
$scope.addTask=函数(任务){
调试(任务);
taskList.addTask('Tester McGee',task.student['Tester']);
}
});
结果(
/tasks
):
{
“$id”:“任务”,
“$priority”:空,
“学生123”:{
“-JoMxWoX0tQrGtdP6Qvm”:{
“检查”:正确,
“名称”:“Tester McGee”
}
}
}
同样,本文的重点是工厂,而不是数据结构。我示例中的表单数据没有意义


希望能有所帮助。

谢谢。这正是我想要的。
student
 --Alison Kay: true
 --Jessica Cook:false
 --John Smith: true
 --Kevin Hunt: true
student
--(key)
  --name:Alison Kay
  --checked: true
--(key)
  --name:Jessica Cook
  --checked: false
--(key)
  --name:John Smith
  --checked: true
--(key)
  --name:Kevin Hunt
  --checked: true