Implementing a Users Collection - ldco2016/microurb_web_framework GitHub Wiki

Screen Shot 2021-08-04 at 12 39 44 PM

import { User } from "./User";

export class Collection {
  models: User[] = [];
}

The next thing I want to do is wire up the Eventing module to broadcast a signal out to the rest of my application anytime I have successfully fetched some data like so:

import { User } from "./User";
import { Eventing } from "./Eventing";

export class Collection {
  models: User[] = [];
  events: Eventing = new Eventing();
}

In the case of Eventing, I probably just want setup some pass through methods with this thing and ensure that other locations in the code can directly call on() and trigger on collection like so:

import { User } from "./User";
import { Eventing } from "./Eventing";

export class Collection {
  models: User[] = [];
  events: Eventing = new Eventing();

  get on() {
    return this.events.on;
  }
}

Why not use the shortened syntax of on = this.events.on; ?

If I am initializing a property in the above fashion, this line of code events: Eventing = new Eventing();, will run after on = this.events.on; and so I cannot use that shortened syntax if I am initializing properties inline, so thats why I am using a getter to expose on() to the outside world.

Lastly, I need trigger():

import { User } from "./User";
import { Eventing } from "./Eventing";

export class Collection {
  models: User[] = [];
  events: Eventing = new Eventing();

  get on() {
    return this.events.on;
  }

  get trigger() {
    return this.events.trigger;
  }
}