import { AgentAuthClient } from '../../clients/AgentAuthClient'; import { AgentState } from '../../state/AgentState'; export function AgentLoginDirectiveFactory() { return new AgentLoginDirective(); } class AgentLoginDirective implements angular.IDirective { retrict = 'E'; template = require('./AgentLogin.html'); controllerAs = 'ctrl'; controller = AgentLoginController; bindToController = true; } export class AgentLoginController { username: string password: string error: { message: string } constructor(private agentAuthClient: AgentAuthClient, private agentState: AgentState) { } login() { if (!!this.username && !!this.password) { this.agentAuthClient.login(this.username, this.password).then( response => this.agentState.username = response.data.username, error => this.error = error.data ); } } }