У меня есть база данных Firebase ... Так что это все JSON.
Я получаю данные, используя базу данных AngularFire2 ... Я читаю этот учебник ...
Часть кода для этого вопроса:
noteList: Observable<Note[]>
constructor(public navCtrl: NavController, private noteListService: NoteListService) {
this.noteList = this.noteListService.getNoteList()
.snapshotChanges()
.map(
changes => {
return changes.map(c => ({
key: c.payload.key, ...c.payload.val()
}))
});
Отсюда я хочу сделать 2 вещи:
- 1-й: объявить переменную массива за пределами конструктора, как
noteList
Пример: myVar: Note[] = new Array();
- 2-й: Итерируемый, хотя результат
getNoteList()
и вставка их в эту переменную для дальнейшего использования ... Я надеюсь, что myVar
будет содержать несколько объектов Note
... => это JSON из Firebase поэтому объекты JavaScript ...
Как мне это сделать?
До сих пор я использовал следующее:
this.noteList .forEach(value => console.log(value));
Это будет регистрировать каждый элемент noteList как Array [Object]
....
Когда я делаю this.noteList .forEach(value => this.myVar.push(value));
, он говорит:
Аргумент типа «Примечание []» присваивается параметру типа «Примечание». Свойство 'id' отсутствует в типе 'Note []'
Полный код класса:
export class HomePage {
noteList: Observable<Note[]>
myVar : Note[] = new Array();
constructor(public navCtrl: NavController, private noteListService: NoteListService) {
this.noteList = this.noteListService.getNoteList()
.snapshotChanges()
.map(
changes => {
return changes.map(c => ({
key: c.payload.key, ...c.payload.val()
}))
});
}
this.noteList .forEach(value => this.myVar.push(value));
//Then below, I want to use it in a Jquery
$(function() {
// Also, I don't know how to access neither noteList nor myVar here. Any help here will be appreciated also
}
}
Не могли бы вы помочь, пожалуйста, сделайте это ...