import { Collection, Component, View, Model } from "../../../src/core"; import { HeroCollection } from "../Collection/Hero"; @Component({ el: "ng-herolist", events: { "change [data-bind=checkbox]": "onSelect", "click [data-sort]": "onClickSort", "click [data-bind=remove]": "onClickRemoveGroup", "click [data-bind=markall]": "onSelectAll" }, template: `
  Name Power
0 selected items
` }) export class HeroListView extends View { el: HTMLElement; collections: NgBackbone.CollectionMap; heroes: HeroCollection; toggle: boolean = false; initialize() { this.heroes = this.collections.get( "heroes" ) as HeroCollection; this.heroes.fetch(); this.render(); } onSelect( e: Event ){ let el = e.target as HTMLInputElement, model = this.heroes.get( el.dataset[ "id" ] ), selected = model.get( "selected" ); model.set( "selected", !selected ); } onSelectAll(){ this.toggle= !this.toggle; this.heroes.forEach(( model: Model ) => { model.set( "selected", this.toggle); }); } onClickRemoveGroup(){ this.heroes.getSelected().forEach( ( model: Model ) => model.destroy() ); } onClickSort( e:Event ) { let el = e.target, order: string = el.dataset[ "sort" ], heroes = this.heroes as HeroCollection; e.preventDefault(); heroes.orderBy( order ); } }