import {Component} from 'angular2/core';
import {User} from "./User";
import {UserService} from "./user-service";
@Component({
selector: 'appTest',
template: `
<ul>
<li *ngFor="#user of users"><span>{{user.name}}</span>{{user.age}}</li>
</ul>
`,
providers: [
UserService
]
})
export class App {
users: User[];
constructor(private userService: UserService) {
this.users = userService.getUsers();
}
}
/**
* Created by dell on 2016/9/8.
*/
import {Injectable} from 'angular2/core';
import {Users} from "./user-data";
import {LogHelper} from "./log-help";
@Injectable()
export class UserService {
getUsers() {
LogHelper.getInstance().log("get user.");
return Users;
}
}
/**
* Created by dell on 2016/9/9.
*/
import {ILog} from "./ILog";
import {LogImpl1} from "./LogImpl1";
import {LogImpl2} from "./LogImpl2";
export class LogHelper {
private static loghelper:LogHelper = null;
private currentTag:number = 0;
private logObj:ILog;
private LogHelper() {
}
public static getInstance() {
if (this.loghelper == null) {
this.loghelper = new LogHelper();
}
return this.loghelper;
}
public log(info:string){
if(this.currentTag == 0){
this.logObj = new LogImpl1();
}else{
this.logObj = new LogImpl2();
}
this.logObj.info("哈哈" + info)
}
}
/**
* Created by dell on 2016/9/9.
*/
export interface ILog{
info(info: string);
}
/**
* Created by dell on 2016/9/9.
*/
import {ILog} from "./ILog";
export class LogImpl1 implements ILog{
public info(info: string){
console.log(info + ":LogImpl1 ")
}
}
/**
* Created by dell on 2016/9/9.
*/
import {ILog} from "./ILog";
export class LogImpl2 implements ILog{
public info(info: string){
console.log(info + ":LogImpl2 ")
}
}