Простой объект JavaScript пуст (= не имеет ключей), когда angular.equals({}, myObj) === true
.
Есть ли какая-нибудь функция полезности для обнаружения, если у $firebaseObject
нет ключей? Он никогда не будет равен {}
потому что он выглядит так:
{
$$conf: Object,
$id: "objectId",
$priority: null,
$value: null
}
EDIT: Я пытаюсь скрыть <div>
когда $firebaseObject
не имеет данных. Кажется, что это делает трюк, но я не знаю, правильно ли это решение:
<div ng-hide="myObj.$value === null">
[...]
</div>
Из документа:
Если значение в базе данных является примитивным (логическое, строковое или числовое), тогда значение будет храниться под этим ключом
$value
. Изменение этого значения, а затем вызов$save()
также обновит значение сервера.Обратите внимание, что в любое время существуют другие ключи, которые будут игнорироваться. Чтобы изменить объект на примитивное значение, удалите остальные ключи и добавьте этот ключ к объекту.
[...]
У моего $firebaseObject
есть такие дети:
key: {
value1: 'something',
value2: 'something'
}
Когда я играл с $value
я нашел это:
$firebaseObject
не имеет дочернего $firebaseObject
, $value
null
$firebaseObject
имеет один ребенок, $value
- его ключ$firebaseObject
имеет более одного ребенка, $value
содержит все дочерние объекты Вопрос в том, могу ли я использовать $value
таким образом, чтобы решить мою проблему, или это невозможно, потому что...?
Так как вы связываете данные в контроллере:
function MainController($firebaseObject) {
var ref = new Firebase('https://yours.firebaseio.com');
vm.users = $firebaseObject(ref.child('users'));
Это работает для show/hide:
<div class="small-12 column" ng-show="vm.users">
<h1>No user</h1>
</div>
<div class="small-12 column" ng-show="!vm.users">
<h1>Users</h1>
<ul>
<li ng-repeat="user in vm.users">{{user}}</li>
</ul>
</div>
Кстати, поскольку вы используете ng-repeat
над пользователями, вы захотите сделать его $firebaseArray()
.
ng-show="vm.users"
показывает div
если vm.users
не имеет данных? Почему? Я бы принял противоположное поведение. Кстати, он хорошо работает с $firebaseObject
- почему $firebaseArray
лучше?