检查是否存在$ firebaseObject

时间:2015-06-29 21:34:01

标签: firebase angularfire

对于$ scope上的普通Javascript对象,您可以使用带有div的ngShow来使div的存在取决于对象的存在。

$scope.myObj = null;
// And then later
$scope.myObj = {arbitrary:{number:{of:"objects"}}};
...
<div ng-show="myObj">{{myObj}}</div>

但是如果你将一个对象绑定到$ firebaseObject

var fbObjRef = new Firebase(FirebaseURL).child("fbObj")
$scope.myObj = $firebaseObject(fbObjRef);

然后你的ngShow将无效,因为Firebase中为空的引用仍然会被客户端表示为:

{
  "$id":"fbObj",
  "$priority":null,
  "$value":null
}

然后如果在该引用处设置了非原始内容,$ value键将消失并被内容替换:

{
  "$id":"fbObj",
  "$priority":null,
  "someKey":{
    "anotherKey":"someValue"
  }
}

检查$ firebaseObject是否存在的最佳方法是什么?这就是我正在做的事,但感觉很笨重。也许这是一个向AngularFire API添加$ exists键的机会。

<div ng-show="myObjExists()">{{myObj}}</div>
...
$scope.myObjExists = function(){
  return !(
    $scope.myObj.hasOwnProperty("$value")
    && $scope.myObj.$value === null
  );
};

0 个答案:

没有答案