Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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.update失败:第一个参数在属性中包含NaN_Angularjs_Firebase - Fatal编程技术网

Angularjs 错误:Firebase.update失败:第一个参数在属性中包含NaN

Angularjs 错误:Firebase.update失败:第一个参数在属性中包含NaN,angularjs,firebase,Angularjs,Firebase,我正在制作一个允许用户生长一棵树的web应用程序。当用户给树施肥时,“肥料”属性应该增加。然而,应用程序一直给我错误,因为它已经决定“肥料”是未定义的 更新分数函数如下所示: function updateScore(){ if (usr!=null){ var tree = $firebase(new Firebase("https://myapp.firebaseio.com/trees/"+usr.treeid)); var usrTree = tr

我正在制作一个允许用户生长一棵树的web应用程序。当用户给树施肥时,“肥料”属性应该增加。然而,应用程序一直给我错误,因为它已经决定“肥料”是未定义的

更新分数函数如下所示:

function updateScore(){
    if (usr!=null){
        var tree = $firebase(new Firebase("https://myapp.firebaseio.com/trees/"+usr.treeid));
        var usrTree = tree.$asObject();
        var data = null;
        if (typeof usrTree.data !== 'undefined'){
            data = usrTree.data;
        }
        console.log(usrTree);
        console.log(usrTree.$id);
        console.log(usrTree.uid);
        console.log(usrTree.fertilizer);
        tree.$update({fertilizer: usrTree.fertilizer+1});
        }
    }
}
因此,控制台会给出以下结果:

e {$$conf: Object, $id: "-JcDm0UlYVGFfFAX0GSf", $priority: null, $save: function, $remove: function…}
$$conf: Object
$id: "-JcDm0UlYVGFfFAX0GSf"
$priority: null
fertilizer: 0
level: 0
pesticide: 0
sunshine: 0
uid: "simplelogin:6"
water: 0
__proto__: Object

-JcDm0UlYVGFfFAX0GSf

undefined

undefined
我相信第一个是
usrTree
对象,第二个是
$id
,第三个和第四个应该是
uid
furture
,但是没有定义。但是,在
usrTree
对象中,
uid
furture
确实按照定义显示,并且它们存在于firebase forge中:


我在这里做错了什么??我应该如何更新数据???

事实证明,我需要使用$loaded。我将代码更改为下面的代码,现在就可以使用了

var tree = $firebase(FirebaseRef.child("trees").child(usr.treeid));
var usrTree = tree.$asObject();
usrTree.$loaded().then(function() {
    tree.$update({fertilizer: usrTree.fertilizer + 1});
}
您还需要在此处使用,以确保同步更新都正确计数。