Angular4

1.安裝node.jscss

  官網下載安裝html

  npm會跟着被自動安裝node

2.安裝Angular工具(AngularCli)npm

  1.使用npm安裝json

    npm install -g @angular/cliapi

  2使用cnpm安裝數組

    1)使用淘寶npm鏡像安裝cnpm網絡

       npm install -g cnpm --registry=https://registry.npm.taobao.orgapp

    2)使用cnpm安裝AngularCli函數

      npm install -g @angular/cli

3.安裝Visual Studio Code

  官網下載安裝

4.Angular命令

  1)新建項目:ng new angulardemo

    

  2)安裝依賴:cnpm install

    意思就是把項目中package.json指定的依賴包下載到本地,生成的文件夾爲node_modules

  3)啓動項目:ng serve --open

  4)建立組件:ng g component components/header

    這裏爲了方便查看,將自定義組件存在在components裏面

    

    並且,爲了保證組件能用,應該在 app.module.ts 這個文件引入並配置

    

   5)建立其餘內容

    

5.Angular 數據交互

  1)隨便舉些例子,當筆記

    ts文件定義好數據

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  styleUrls: ['./header.component.css']
})
export class HeaderComponent implements OnInit {

  // 定義一個屬性
  title = 'header';

  // 定義一個boolen值
  ShowTitle = true;

  // 定義一個屬性,值爲html
  html = '<h2>這裏是存放html的屬性</h2>';

  // 定義一個對象
  obj = {
    name: 'kxy'
  };

  // 定義一個數組
  list = ['數學', '語文', '英語'];

  // 定義一個json數組
  list1 = [
    {
      'Name': 'kxy',
      'Sex': '',
      'Hobby': { 'Book': '小說', 'Game': 'DNF' }
    },
    {
      'Name': 'flt',
      'Sex': '',
      'Hobby': { 'Book': '不知道', 'Game': '王者榮耀' }
    }
  ];

  getTitle() {
    alert(this.title);
  }
  ChangeShowTitle() {
    this.ShowTitle = !this.ShowTitle;
  }
  KeyUpEvent(e) {
    console.log(e);
  }
  constructor() {

  }

  ngOnInit() { // 生命週期函數,加載應用觸發
  }
}

    html以下

<p>
  header works!
</p>
<!-- 用雙大括號能夠直接使用ts數據 -->
<a>{{title}}</a>

<!-- 標籤裏面的屬性能夠用如下兩個方法調用數據,效果同樣 -->
<div title="{{title}}">title屬性,鼠標瞄上去能夠查看</div>
<div [title]="title">title屬性,鼠標瞄上去能夠查看</div>

<!-- 讀取html不能直接用大括號,須要用到innerHtml屬性 -->
<div [innerHtml]="html"></div>

<!-- 循環數組 -->
<ul>
  <li *ngFor="let item of list">{{item}}</li>
</ul>

<!-- 獲取數組索引值 -->
<ul>
  <li *ngFor="let item of list;let key=index">{{key}}--{{item}}</li>
</ul>

<!-- 循環json數組 -->
<ul>
  <li *ngFor="let item of list1">
    {{item.Name}}_{{item.Sex}}
    <ol>
        喜歡的書籍:{{item.Hobby.Book}}
        <br>
        喜歡的遊戲:{{item.Hobby.Game}}
    </ol>
  </li>
</ul>
<hr>

<!-- 調用函數 -->
<button (click)="getTitle()">點擊我</button>
<hr>

<!-- 判斷語句 -->
<div *ngIf="ShowTitle">{{title}}</div>
<button (click)="ChangeShowTitle()">顯示《_》隱藏</button>
<hr>

<!-- 鍵盤按鈕彈起觸發,注入 事件對象$event ,ts獲取的數據能夠在控制檯查看 -->
<input type="text" (keyup)="KeyUpEvent($event)">

  2)雙向數據綁定

   須要先在app.module.ts裏面引入

import { FormsModule } from '@angular/forms';

  還得在imports裏面聲明一下

  html以下:

<!-- 雙向數據綁定 -->
<input type="text" [(ngModel)]="title">
{{title}}

  在咱們修改頁面title的值時,ts文件也會對應的修改(中括號表示屬性,小括號表示事件)

  3)服務

  例子:

    添加一個服務:ng g service services/storage

    代碼上面表格也有。

    而且須要在app.module裏面引入

    

    且使用這個服務的組件也須要引入,才能夠使用

      import { StorageService } from '../../services/storage.service';

 6.Http網絡請求

  老規矩,在app.module裏面添加引用

  

  而且須要在組件引入

import { Http,Headers } from '@angular/http';

  在類中定義屬性,並使用構造函數注入

  http: Http;
  headers: Headers;
  jsondata: any;
  constructor(_http: Http, _jsonp: Jsonp) {
    this.http = _http;this.headers = new Headers({ 'Content-Type': 'application/json' });
  }

  get請求函數:

  httpRequestData() {
    let url;
    url = 'http://localhost:53876/api/weather/current/80005';
    this.http.get(url).subscribe(
      function (data) {
        this.jsondata = JSON.parse(data['_body']);
        console.log(this.jsondata['data']);
      },
      function (error) {
        console.log('error');
      });
  }

  Post請求函數:

  httpPostRequestData() {
    let url;
    url = 'http://localhost:53876/api/weather/廣州';
    this.http.post(
      url,
      JSON.stringify({ city: '廣州' }),
      { headers: this.headers }).subscribe(
        function (data) {
          console.log(data);
        },
        function (error) {
          console.log('error');
        });
  }
相關文章
相關標籤/搜索