Advertisement
Guest User

Untitled

a guest
May 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. import { Injectable } from '@angular/core';
  2. import { AngularFireList, AngularFireDatabase } from 'angularfire2/database';
  3. import { Observable } from '@firebase/util';
  4. import { Menu } from '../../model/menu';
  5. import { MenuItem } from '../../model/menu-item';
  6.  
  7. /*
  8. Generated class for the MenuProvider provider.
  9.  
  10. See https://angular.io/guide/dependency-injection for more info on providers
  11. and Angular DI.
  12. */
  13. @Injectable()
  14. export class MenuProvider {
  15. private activeMenu: Menu;
  16.  
  17. public firebase: AngularFireDatabase;
  18. constructor(private _firebase: AngularFireDatabase) {
  19. this.firebase = _firebase;
  20. }
  21.  
  22. getActiveMenu(): Menu {
  23.  
  24. this.firebase.list('/menus').snapshotChanges().subscribe((menus) => {
  25.  
  26. menus.map(menu => {
  27. if (menu.payload.val().isActive) {
  28. // this.activeMenu.$key = menu.key;
  29. // this.activeMenu.isActive = menu.payload.val().isActive;
  30. // this.activeMenu.name = menu.payload.val().name;
  31.  
  32. let menuItems: MenuItem[] = this.convertEntitiesToArray(menu.payload.val().menuItems);
  33. // console.log(menuItems[0]);
  34. this.activeMenu = new Menu(menu.payload.val().name, menu.payload.val().isActive, menuItems);
  35. // this.activeMenu.menuItems = [...menuItems];
  36. // console.log()
  37. // for(let menuItem of menuItems){
  38. // this.activeMenu.menuItems.push(new MenuItem(menuItem as MenuItem));
  39. // }
  40. }
  41. })
  42. });
  43. return this.activeMenu;
  44.  
  45.  
  46. // this.firebase.list('/menus').snapshotChanges().subscribe(menus=>{
  47. // // menus.map(menu=>{
  48. // // console.log(menu);
  49. // // })
  50. // });
  51. // this.firebase.list('/menus').query.orderByChild('isActive').equalTo(true).on('value', (snapshot) => {
  52. // let tempMenu = scope.convertEntitiesToArray(snapshot.val())[0];
  53.  
  54. // var menu = new Menu();
  55. // menu.$key = tempMenu.$key;
  56. // menu.isActive = tempMenu.isActive;
  57. // menu.name = tempMenu.name;
  58. // menu.menuItems = scope.convertEntitiesToArray(tempMenu.menuItems);
  59. // return menu;
  60. // });
  61. // console.log(this.activeMenu);
  62. // return this.activeMenu;
  63. }
  64.  
  65. convertEntitiesToArray(entities) {
  66. const keys = Object.keys(entities);
  67. return keys.map(key => {
  68. return {
  69. id: key,
  70. ...entities[key]
  71. };
  72. });
  73. }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement