Angularjs Firebase$save不';不能在事件处理程序函数中工作

Angularjs Firebase$save不';不能在事件处理程序函数中工作,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我一定错过了一些非常基本的东西。我有一个输入框,输入列表名称。然后将该名称保存到Firebase 使用$watch时,它工作正常。但是,如果通过ng keyup事件执行,则返回以下错误 TypeError:undefined不是函数 我错过了什么 HTML: 编辑:在注释中,我包含了$scope.which\u list的值,该值显示在断点处 当前,当您在范围中更改列表转换为普通的旧JavaScript对象(POJO)时,我认为您需要在范围变量和$asObject()之间进行三向绑定 代码 va

我一定错过了一些非常基本的东西。我有一个输入框,输入列表名称。然后将该名称保存到Firebase

使用
$watch
时,它工作正常。但是,如果通过
ng keyup
事件执行,则返回以下错误

TypeError:undefined不是函数

我错过了什么

HTML:


编辑:在注释中,我包含了
$scope.which\u list
的值,该值显示在断点处

当前,当您在范围
中更改列表
转换为普通的旧JavaScript对象(POJO)时,我认为您需要在范围变量和
$asObject()
之间进行三向绑定

代码

var which_list = sync.$asObject();
// set up 3-way data-binding
which_list.$bindTo($scope, "which_list");
更新

var which_list = sync.$asObject();
// set up 3-way data-binding
which_list.$bindTo($scope, "which_list");
另外,当您使用
$scope.which_列出包含名称和其他属性的对象时,请在启动控制器时初始化它,如

$scope.which_list = {}

希望这能对您有所帮助,谢谢。

未定义不是一个函数
是Java脚本相当于空指针异常。您是否尝试在
enterThis
中设置断点并检查该点的状态?是的。在上面的评论中包含$scope.which_列表的值。我不明白为什么它会成为enterThis函数中的一个简单对象(而不是firebase sync对象)。是的,结果是我在使用事件处理程序的过程中犯了一个错误,将{}分配给了哪个_列表。我通过纠正无意中的作业解决了这个问题,但我相信pankajparkar的回答也会解决这个问题。谢谢。@Javvva我更新了答案。请检查。请随意编辑。。谢谢:)
$scope.which_list = {}