Skip to content

Commit

Permalink
Add standalone component & two-way binding to ng input example (#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
dinnerhe committed Nov 20, 2023
1 parent 1990eec commit 4e73bd7
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { Component } from "@angular/core";
import { CommonModule } from '@angular/common';
import {FormsModule} from "@angular/forms";

@Component({
selector: "app-input-hello",
template: `<input [value]="text" (change)="handleInputChange($event)" />`,
standalone: true,
imports: [CommonModule, FormsModule],
template: `<p>{{text}}</p>
<input [(ngModel)]="text">`,
})
export class InputHelloComponent {
text = "";

handleInputChange(event: Event) {
this.text = (event.target as HTMLInputElement).value;
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import { Component } from "@angular/core";
import { CommonModule } from '@angular/common';
import {FormsModule} from "@angular/forms";

@Component({
selector: "app-is-available",
standalone: true,
imports: [CommonModule, FormsModule],
template: `
<input
id="is-available"
type="checkbox"
[checked]="isAvailable"
(change)="handleChange()"
[(ngModel)] = "isAvailable"
/>
<label for="is-available">Is available</label>
`,
})
export class IsAvailableComponent {
isAvailable = false;

handleChange() {
this.isAvailable = !this.isAvailable;
}
}
14 changes: 6 additions & 8 deletions content/6-form-input/3-radio/angular/pick-pill.component.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,31 @@
import { Component } from "@angular/core";
import { CommonModule } from '@angular/common';
import {FormsModule} from "@angular/forms";

@Component({
selector: "app-pick-pill",
standalone: true,
imports: [CommonModule, FormsModule],
template: `
<div>Picked: {{ picked }}</div>
<input
id="blue-pill"
[checked]="picked === 'blue'"
type="radio"
value="blue"
(change)="handleChange($event)"
[(ngModel)]="picked"
/>
<label for="blue-pill">Blue pill</label>
<input
id="red-pill"
[checked]="picked === 'red'"
type="radio"
value="red"
(change)="handleChange($event)"
[(ngModel)]="picked"
/>
<label for="red-pill">Red pill</label>
`,
})
export class PickPillComponent {
picked = "red";

handleChange(event) {
this.picked = event.target.value;
}
}
10 changes: 5 additions & 5 deletions content/6-form-input/4-select/angular/color-select.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { Component } from "@angular/core";
import { CommonModule } from '@angular/common';
import {FormsModule} from "@angular/forms";

@Component({
selector: "app-color-select",
standalone: true,
imports: [CommonModule, FormsModule],
template: `
<select [value]="selectedColorId" (change)="handleChange($event)">
<select [(ngModel)]="selectedColorId">
<option
*ngFor="let color of colors"
[value]="color.id"
Expand All @@ -23,8 +27,4 @@ export class ColorSelectComponent {
{ id: 3, text: "green" },
{ id: 4, text: "gray", isDisabled: true },
];

handleChange(event) {
this.selectedColorId = event.target.value;
}
}

0 comments on commit 4e73bd7

Please sign in to comment.