11import { Component , Directive , Host , ElementRef , Input } from 'angular2/core' ;
2+ import { Observable } from 'data/observable' ;
3+ import { TextValueAccessor } from './nativescript-angular/text-value-accessor' ;
24
35@Component ( {
46 selector : 'templated-component' ,
@@ -24,11 +26,13 @@ export class ProgressComponent {
2426
2527@Component ( {
2628 selector : 'renderer-test' ,
27- directives : [ TemplatedComponent , ProgressComponent ] ,
29+ directives : [ TemplatedComponent , ProgressComponent , TextValueAccessor ] ,
2830 template : `
2931 <StackLayout orientation='vertical'>
3032 <Progress value="50" style="color: red"></Progress>
3133 <Label [class.valid]="isValid" [class.invalid]="!isValid" text='Name' fontSize='20' verticalAlignment='center' padding='20'></Label>
34+ <Label [text]='model.test'></Label>
35+ <TextField #name [ngModel]='model.test' (ngModelChange)='model.test=setUpperCase($event)' fontSize='20' padding='20'></TextField>
3236 <TextField #name text='John' fontSize='20' padding='20'></TextField>
3337 <Button [text]='buttonText' (tap)='onSave($event, name.text, $el)'></Button>
3438 <Button text='Toggle details' (tap)='onToggleDetails()'></Button>
@@ -49,12 +53,14 @@ export class RendererTest {
4953 public moreDetailsText : string = "" ;
5054 public detailLines : Array < string > = [ ] ;
5155 public isValid : boolean = true ;
56+ public model : Observable ;
5257
5358 constructor ( ) {
5459 this . buttonText = 'Save...'
5560 this . showDetails = true ;
5661 this . detailsText = 'plain ng-if directive \ndetail 1-2-3...' ;
5762 this . moreDetailsText = 'More details:' ;
63+ this . model = new Observable ( { 'test' : 'John' } ) ;
5864
5965 this . detailLines = [
6066 "ngFor inside a ngIf 1" ,
@@ -67,8 +73,22 @@ export class RendererTest {
6773 alert ( name ) ;
6874 }
6975
76+ testLoaded ( $event ) {
77+ console . log ( "testLoaded called with event args: " + $event ) ;
78+ }
79+ 7080 onToggleDetails ( ) {
7181 console . log ( 'onToggleDetails current: ' + this . showDetails ) ;
7282 this . showDetails = ! this . showDetails ;
7383 }
84+ 85+ setUpperCase ( $event ) {
86+ if ( $event . value && $event . value . toUpperCase ) {
87+ return $event . value . toUpperCase ( ) ;
88+ }
89+ if ( typeof $event === "string" ) {
90+ return $event . toUpperCase ( ) ;
91+ }
92+ return $event ;
93+ }
7494}
0 commit comments