parent
28386efb50
commit
c46892afa9
|
@ -0,0 +1,13 @@
|
||||||
|
library hero_form.hero;
|
||||||
|
|
||||||
|
class Hero {
|
||||||
|
int number;
|
||||||
|
String name;
|
||||||
|
String power;
|
||||||
|
String alterEgo;
|
||||||
|
|
||||||
|
Hero(this.number, this.name, this.power, {this.alterEgo});
|
||||||
|
|
||||||
|
Map toJson() =>
|
||||||
|
{'number': number, 'name': name, 'power': power, 'alterEgo': alterEgo};
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
library hero_form.hero_form_component;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
import 'package:hero_form/hero.dart';
|
||||||
|
|
||||||
|
const List<String> _powers = const [
|
||||||
|
'Really Smart',
|
||||||
|
'Super Flexible',
|
||||||
|
'Super Hot',
|
||||||
|
'Weather Changer'
|
||||||
|
];
|
||||||
|
|
||||||
|
@Component(selector: 'hero-form')
|
||||||
|
@View(
|
||||||
|
templateUrl: 'hero_form_component.html',
|
||||||
|
directives: const [CORE_DIRECTIVES, FORM_DIRECTIVES])
|
||||||
|
class HeroFormComponent {
|
||||||
|
List<String> get powers => _powers;
|
||||||
|
|
||||||
|
bool submitted = false;
|
||||||
|
|
||||||
|
Hero model = new Hero(18, 'Dr IQ', _powers[0], alterEgo: 'Chuck Overstreet');
|
||||||
|
|
||||||
|
onSubmit() {
|
||||||
|
submitted = true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
<div class="container" [hidden]="submitted">
|
||||||
|
{{model.toJson()}}
|
||||||
|
<h1>Hero Form</h1>
|
||||||
|
<form (ng-submit)="onSubmit()" #hf="form">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<input type="text" class="form-control" required [(ng-model)]="model.name" ng-control="name" #name="form" >
|
||||||
|
<div [hidden]="name.valid" class="alert alert-danger">
|
||||||
|
Name is required
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="alterEgo">Alter Ego</label>
|
||||||
|
<input type="text" class="form-control" [(ng-model)]="model.alterEgo" ng-control="alterEgo" >
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="power">Hero Power</label>
|
||||||
|
<select class="form-control" required [(ng-model)]="model.power" ng-control="power" >
|
||||||
|
<option *ng-for="#p of powers" [value]="p">{{p}}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-default" [disabled]="!hf.form.valid">Submit</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div [hidden]="!submitted">
|
||||||
|
<h2>You submitted the following:</h2>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-3">Name</div>
|
||||||
|
<div class="col-xs-9 pull-left">{{ model.name }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-3">Alter Ego</div>
|
||||||
|
<div class="col-xs-9 pull-left">{{ model.alterEgo }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-3">Power</div>
|
||||||
|
<div class="col-xs-9 pull-left">{{ model.power }}</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<button class="btn btn-default" (click)="submitted=false">Edit</button>
|
||||||
|
</div>
|
|
@ -0,0 +1,9 @@
|
||||||
|
name: hero_form
|
||||||
|
description: Form example
|
||||||
|
version: 0.0.1
|
||||||
|
dependencies:
|
||||||
|
angular2: 2.0.0-alpha.45
|
||||||
|
browser: ^0.10.0
|
||||||
|
transformers:
|
||||||
|
- angular2:
|
||||||
|
entry_points: web/main.dart
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Displaying Data</title>
|
||||||
|
<link rel="stylesheet" href="bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="styles.css">
|
||||||
|
<script async src="main.dart" type="application/dart"></script>
|
||||||
|
<script async src="packages/browser/dart.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<hero-form></hero-form>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,6 @@
|
||||||
|
import 'package:angular2/bootstrap.dart';
|
||||||
|
import 'package:hero_form/hero_form_component.dart';
|
||||||
|
|
||||||
|
main() {
|
||||||
|
bootstrap(HeroFormComponent);
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
.ng-valid[required] {
|
||||||
|
border-left: 5px solid #42A948; /* green */
|
||||||
|
}
|
||||||
|
.ng-invalid {
|
||||||
|
border-left: 5px solid #a94442; /* red */
|
||||||
|
}
|
Loading…
Reference in New Issue