<!DOCTYPE html>
<html>
<head>
<title>Angular 2 - jQuery example </title>
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.js"></script>
<!-- 1. Load libraries -->
<script src="https://code.angularjs.org/2.0.0-beta.1/angular2-polyfills.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.1/Rx.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.1/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
transpiler: 'typescript',
typescriptOptions: { emitDecoratorMetadata: true },
packages: {'app': {defaultExtension: 'ts'}}
});
System.import('app/main')
.then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<ng-chosen>Loading...</ng-chosen>
</body>
</html>
import {bootstrap} from 'angular2/platform/browser';
import {Component, ElementRef, AfterViewInit} from 'angular2/core';
declare var jQuery:JQueryStatic;
@Component({
selector: 'ng-chosen',
template:`<select>
<option *ngFor="#item of items" [value]="item" [selected]="item == selectedValue">{{item}} option</option>
</select>
<h4> {{selectedValue}}</h4>`})
export class NgChosenComponent implements AfterViewInit {
static chosenInitialized = false;
items = ['First', 'Second', 'Third'];
selectedValue = 'Second';
constructor(private el:ElementRef) {
}
ngAfterViewInit() {
if(!NgChosenComponent.chosenInitialized) {
jQuery(this.el.nativeElement)
.find('select')
.chosen()
.on('change', (e, args) => {
this.selectedValue = args.selected;
});
NgChosenComponent.chosenInitialized = true;
}
}
}
bootstrap(NgChosenComponent);