Angular基础认识
Angular基础认识 搭建环境
cnpm install -g @angular/cli
ng new angular2-demo-master --skip-install
cd angular2-demo-master
ng serve
cnpm install webpack --save
npm start 编写程序
<div class="cmp-1"> <h1>根组件</h1> <p> 嘿嘿,{{ greeting }}! <label> <input type="checkbox" [(ngModel)]="isShowMore"> 是否显示详细信息 </label> </p> <p highlight *ngIf="isShowMore">Angular 2 是 Google 推出的新一代的Web开发框架</p> <my-child [message]="msgToChild" (outer)="receive($event)"></my-child> <p>从子组件获得的消息:{{ msgFromChild || '暂无' }}</p> </div>
import { Component } from '@angular/core'; import { LoggerService } from './logger.service'; @Component({ selector: 'my-app',templateUrl: './app/app.component.html' }) export class AppComponent { private greeting: string; private isShowMore: boolean; private msgToChild: string; private msgFromChild: string; constructor(private logger: LoggerService) { } ngOnInit() { this.greeting = 'Angular 2'; this.msgToChild = 'message from parent'; this.logger.debug('应用已初始化'); } receive(msg: string) { this.msgFromChild = msg; } }
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; import { ChildComponent } from './child.component'; import { HighlightDirective } from './highlight.directive'; import { LoggerService } from './logger.service'; @NgModule({ imports: [ BrowserModule,FormsModule ],declarations: [ AppComponent,ChildComponent,HighlightDirective ],providers: [ LoggerService ],bootstrap: [ AppComponent ] }) export class AppModule { }
<div class="cmp-2"> <h1>子组件</h1> <p>嘿嘿,我从父组件获取的值是:{{ message }}</p> <button (click)="sendToParent()">发送到父组件</button> </div>
import { Component,Input,Output,EventEmitter } from '@angular/core'; @Component({ selector: 'my-child',templateUrl: './app/child.component.html' }) export class ChildComponent { @Input() private message: string; @Output() private outer = new EventEmitter<string>(); constructor() { } sendToParent() { this.outer.emit('message from child'); } }
import { Directive,ElementRef,Renderer } from '@angular/core'; @Directive({ selector: "[highlight]" }) export class HighlightDirective { constructor( private el: ElementRef,private renderer: Renderer ) { renderer.setElementStyle(el.nativeElement,'backgroundColor','yellow'); } }
import { Injectable } from '@angular/core'; @Injectable() export class LoggerService { constructor() { } debug(msg: string) { console.log(msg); } }
修改文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Angular 2 快速上手</title> <base href="/"> <style> html {font-family:'Microsoft Yahei';background-color:#F7F48B;} p {margin:8px 0;padding:0;} h1 {font-size:20px;} button,input {font-size:16px;} .cmp-1 {background:#A1DE93;border-radius:5px;width:500px;height:300px;margin:100px auto;padding:20px;} .cmp-2 {border:1px solid #ccc;border-radius:5px;background-color:#70A1D7;padding: 10px;margin:20px 0;} </style> </head> <body> <my-app>加载中...</my-app> <script src="bundle.js"></script> </body> </html>
import 'zone.js'; import 'core-js/es6/reflect'; import 'core-js/es7/reflect'; // JiT启动模式 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule);
module.exports = { entry: './main.ts',output: { filename: './bundle.js' },resolve: { extensions: ['.ts','.js'] },module: { rules: [ { test: /.ts$/,loader: 'ts-loader' } ] } }; 知识点总结
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |