2015-01-24 3 views
0

Все хорошо, когда у вас есть только один массив.Множество массивов и вложенных массивов с AngularFire

var ref = new Firebase("..."); 
var sync = $firebase(ref); 
var test = sync.$asArray(); 

Так у меня есть массив в тесте, на котором я могу работать с $ добавить, $ сохранить и $ удалить.

Но что, если я хочу второй массив? Я попытался это:

var ref = new Firebase("..."); 
var sync = $firebase(ref); 
var test = sync.$asArray(); 
var test2 = sync.$asArray(); 

Но если я что-то добавить к test2, она идет к той же БД, как один тест использования. Я использую это неправильно? Нужно ли создавать новый Firebase db для каждого массива?

Возможно ли создать динамическое число массивов? Можно ли встраивать массивы в массивы? Пример: список списков todo.

ответ

1

В вашем примере вы вызываете $asArray на ту же самую синхронизацию $firebase, так что естественно это приводит к двум ссылкам на один и тот же массив.

Если вы хотите два отдельных массивов, вам необходимо создать отдельную ссылку на данные для каждого из них:

var ref1 = new Firebase("https://yours.firebaseio.com/array1"); 
var ref2 = new Firebase("https://yours.firebaseio.com/array2"); 
var sync1 = $firebase(ref1); 
var sync2 = $firebase(ref2); 
var test = sync1.$asArray(); 
var test2 = sync2.$asArray(); 
+0

WOW, спасибо! Я попробовал это с новым экземпляром, но я использовал тот же URL. Дурак я. Вложенность остается проблемой. Конечно, я могу использовать список, чтобы хранить URL-адреса подписок, но простой 'main. $ Add (sub)' был бы намного более изящным. –

0

Это была не легкая прогулка, но в конце концов я нашел простой способ сделать это. Проверьте это here.

Смежные вопросы