Angular8學習筆記 (組件 TodoMVC)

20190815

1、從GitHub上 下載代碼後,放到vs_workspace後,先npm install......

使用index.html中的body---section  & footer 部分 ,放入app.component.html中

2、導入樣式,除了向app.component.css文件導入外、還可以向styles.css導入

  ○導入樣式之前,需要先  npm  i  需要的包  eg: npm i todomvc-common todomvc-app-css

20190821

3、數據列表顯示

    有數據:*ngFor="let todo of todos" (遍歷數組)

    無數據:*ngIf="todos.length"

    ngIf結合ng-template標籤

4、添加任務

 app.component.html 

        事件:(keyup.enter)="addTodo($event)"

 app.component.ts   

  addTodo(e): void {
    const titleTxt = e.target.value;  // 定義一個變量來接收輸入框中的輸入的值
    if (!titleTxt.length) {  // 如果輸入框爲空,則返回
      return;
    }
    const last = this.todos[this.todos.length - 1];  // 獲取todos數組長度
    this.todos.push({ // 否則,把輸入框中的值存入到todos數組中
      id: last ? last.id + 1 : 1,
      title: titleTxt,
      done: false
    });
    e.target.value = ''; // 清空輸入框數據
  }

20190823

雙向數據綁定:[( )]

動態屬性綁定:[ ]

change事件綁定:() 

5、利用雙向數據綁定顯示    

1、在app.component.html中添加   [(ngModel)]="todo.done"

2、在app.module中,導入FromsModule,並添加到imports列表中

// [(ngModel)] 必須導入FromsModule並把它添加到Angular模塊的imports列表中

標記所有任務完成/未完成

 <input id="toggle-all" class="toggle-all" type="checkbox" [checked]="toggleAll">

如果toggleAll爲true,該input被選中😄;否則,不被選中

任務項

    1.切換任務完成狀態

        樣式聯動

             NgClass指令接收一個對象,對象的key指定css類名,value給定一個Boolean值,當Boolean爲true時,則作用該類                                名,否則,移除該類名。

              NgStyle指令:雖然這是設置單一樣式的好辦法,但通常更喜歡使用多個NgStyle指令來同時設置多個內聯樣式。

        聯動切換所有任務狀態

      <input id="toggle-all" class="toggle-all" type="checkbox" 
             [checked]="toggleAll" 
             (change)="toggleAll=$event.target.checked">

       // $event 當前dom元素
       // 該dom元素有一個屬性checked,即選中與未選中的狀態

   2. 刪除任務項

對button增加click事件,再點擊的時候,會執行一個方法

 <button class="destroy" (click)="removeTodo(i)"></button> <!--根據數組索引下標刪除指定元素-->

根據索引下標來刪除任務項

【index 爲當前遍歷的索引】,聲明一個局部變量 i 進行接收

       <li *ngFor="let todo of todos;let i = index;" [ngClass]="{completed: todo.done}">
          <div class="view">
            <input class="toggle" type="checkbox" [(ngModel)]="todo.done">
            <label>{{ todo.title }}</label>
            <button class="destroy" (click)="removeTodo(i)"></button> <!--根據數組索引下標刪除指定元素-->
          </div>
          <input class="edit" value="Create a TodoMVC template">
        </li>

在組件類中聲明方法來處理

 // 刪除單個任務項

  removeTodo(index: number) {
    // console.log(index);

    // 根據索引從數組中刪除
    this.todos.splice(index, 1);
  }

   3.雙擊label進入編輯狀態  p33

 

6、編輯任務項

1.編輯文本框自動獲得焦點

 

2.在編輯文本框中敲回車或者失去焦點

 

3.輸入狀態按下esc,取消編輯

 

 

7、

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章