using decorators to write AngularJS in nearly identical syntax to Angular 2
This commit is contained in:
parent
8e863b8cf5
commit
c60ce4a696
19 changed files with 559 additions and 488 deletions
45
static/js/services/page/page.service.impl.ts
Normal file
45
static/js/services/page/page.service.impl.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
import { Injectable } from 'angular-ts-decorators';
|
||||
import { PageService } from './page.service';
|
||||
|
||||
|
||||
@Injectable(PageService.name)
|
||||
export class PageServiceImpl implements ng.IServiceProvider {
|
||||
|
||||
private pages: any = {};
|
||||
|
||||
constructor() {
|
||||
|
||||
}
|
||||
|
||||
public create(pageName: string,
|
||||
templateName: string,
|
||||
controller?: any,
|
||||
flags: any = {},
|
||||
profiles: string[] = ['old-layout', 'layout']): void {
|
||||
for (var i = 0; i < profiles.length; ++i) {
|
||||
this.pages[profiles[i] + ':' + pageName] = {
|
||||
'name': pageName,
|
||||
'controller': controller,
|
||||
'templateName': templateName,
|
||||
'flags': flags
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public get(pageName: string, profiles: any[]): any[] | null {
|
||||
for (var i = 0; i < profiles.length; ++i) {
|
||||
var current = profiles[i];
|
||||
var key = current.id + ':' + pageName;
|
||||
var page = this.pages[key];
|
||||
if (page) {
|
||||
return [current, page];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public $get(): PageService {
|
||||
return this;
|
||||
}
|
||||
}
|
Reference in a new issue