搜尋
首頁web前端js教程增強基於 Angular 的雜貨清單管理器中的專案管理:第 2 部分

在本 Angular 教學系列的第一部分中,您了解如何開始使用 Angular 建立雜貨清單管理器。您學習如何建立雜貨組件的視圖、將商品新增至雜貨清單並顯示新增的商品。

在這一部分中,您將實作標記已完成項目、編輯現有項目和刪除新增項目的功能。

開始使用

讓我們開始複製本教學第一部分的原始程式碼。在您的終端機中,寫入以下程式碼以克隆原始程式碼:

git clone https://github.com/royagasthyan/AngularGrocery

克隆原始程式碼後,導覽至專案資料夾並安裝所需的依賴項。

cd AngularGrocery
npm install

安裝依賴項後,您將能夠啟動伺服器。從專案資料夾中,輸入以下命令:

ng serve

將瀏覽器指向 http://localhost:4200/,應用程式應該正在執行。

更新雜貨商品

將雜貨商品新增至清單後,您應該能夠編輯和更新這些商品。讓我們在清單網格中提供一個編輯按鈕,點擊該按鈕將啟用對現有項目的編輯。

修改 app.grocery.html 程式碼以在網格內包含編輯按鈕。

<span class="glyphicon glyphicon-pencil floatright"></span>

儲存以上變更並重新啟動伺服器。載入頁面並輸入一些項目,您將看到每個項目的編輯按鈕。

增强基于 Angular 的杂货列表管理器中的项目管理:第 2 部分

當使用者點擊編輯按鈕時,您需要新增一個 on click 方法來處理專案編輯。修改 app.grocery.html 新增用於編輯專案的點擊事件。

<span (click)="onEdit(task)" class="glyphicon glyphicon-pencil floatright"></span>

task 傳遞給 onEdit 方法(如上面程式碼所示)來識別要編輯的項目。

GroceryComponent 類別中初始化 task 範圍變量,如下所示:

task = {
    name: '',
	id: 0
  };

onClick 方法中,您將檢查 id 以查看它是現有專案還是新專案。修改 onClick 方法,如下:

if(this.task.id == 0){
    this.tasks.push({id: (new Date()).getTime(),name: this.task.name});
}

如圖所示,您已為每個任務分配了一個唯一的時間戳,即 id。現在讓我們定義 onEdit 方法來編輯現有項目。在 onEdit 方法中,將傳入的 item 賦值給 task 變數。

onEdit(item){
    this.task = item;
}

儲存變更並重新啟動伺服器。在購物清單中輸入新商品,然後按一下對應的編輯按鈕。您可以透過點擊 OK 按鈕來編輯和更新該條目。

增强基于 Angular 的杂货列表管理器中的项目管理:第 2 部分

刪除雜貨商品

讓我們新增一個刪除圖示來刪除現有的項目。更新 app.grocery.html 文件,修改 HTML 程式碼,如下所示:

<span class="glyphicon glyphicon-remove floatright paddingLeft"></span>

以下是完整的 app.grocery.html 檔案的外觀:

Grocery list manager

  • {{ task.name }} <span class="glyphicon glyphicon-remove floatright paddingLeft"></span> <span (click)="onEdit(task)" class="glyphicon glyphicon-pencil floatright"></span>

向刪除圖示新增點擊事件以刪除雜貨。

<span (click)="onDelete(task)" class="glyphicon glyphicon-remove floatright paddingLeft"></span>

儲存變更並重新啟動伺服器。嘗試在雜貨管理應用程式中新增商品,您將看到這些商品以及刪除和編輯圖示。

增强基于 Angular 的杂货列表管理器中的项目管理:第 2 部分

要實作刪除功能,需要在onDelete 方法= "inline">app.grocery.ts 檔案如圖:

onDelete(item){
    // Delete functionality will be here
}

使用者點擊刪除圖示後,您需要根據雜貨項目清單檢查項目 id 並從 tasks 清單中刪除該條目。以下是 onDelete 方法的外觀:

onDelete(item){
    for(var i = 0;i < this.tasks.length; i++){
    	if(item.id == this.tasks[i].id){
    		this.tasks.splice(i,1);
    		break;
    	}
    }
}

如上面的程式碼所示,您已經迭代了 tasks 列表,並根據點擊的項目 id 對其進行了檢查。如果它與 tasks 清單中的項目匹配,則使用 splice 方法將其刪除。

儲存以上變更並重新啟動伺服器。將一些商品加入雜貨清單管理器。它將與刪除和編輯圖示一起新增到任務清單網格中。嘗試點擊刪除圖標,該項目將從項目清單中刪除。

將雜貨標記為完成

讓我們新增刪除新增到清單中的項目的功能。一旦使用者完成了購物清單管理器中的任務,就應該可以刪除已完成的任務。若要追蹤新任務和已完成的任務,請將新變數 strike 新增至任務資訊。

修改 onClick 方法以包含新的 strike 變量,如下所示:

  onClick(){
    if(this.task.id == 0){
		this.tasks.push({id: (new Date()).getTime(),name: this.task.name, strike: false});
	}
	
  	this.task = {
		name: '',
		id: 0
	};
  }

src/style.css 文件中添加一个名为 strike 的新类,该类将删除该项目。

.strike{
    text-decoration:line-through;
}

在项目上包含单击事件,以切换 items 变量中的 strike 变量。您将根据 strike 变量的布尔值将 strike 类应用于项目。默认情况下,它将为 false。以下是用于切换罢工变量值的 onStrike 方法:

onStrike(item){
  for(var i = 0;i < this.tasks.length; i++){
    if(item.id == this.tasks[i].id){
      if(this.tasks[i].strike){
        this.tasks[i].strike = false;
      }
      else{
        this.tasks[i].strike = true;
      }
      break;
    }
  }
}

如上面的方法所示,您将迭代项目列表。找到该项目后,您可以切换罢工值。

基于 strike 变量,您需要将类 strike 应用到任务名称范围。其外观如下:

<span (click)="onStrike(task)" [ngClass]="{'strike': task.strike}"> {{ task.name }} </span>

如图所示,如果 task.strike 值为 ngClass 指令将类 strike 应用于 span 元素class="inline">true。

保存以上更改并重新启动服务器。将项目添加到列表中,然后单击添加的项目。单击后,该项目将按预期被删除。

增强基于 Angular 的杂货列表管理器中的项目管理:第 2 部分

总结

在本教程中,您了解了如何使用 Angular 在杂货店管理应用中更新、删除任务并将任务标记为完成。我希望您喜欢本教程。请在下面的评论中告诉我您的想法。

JavaScript 已成为事实上的网络工作语言之一。它并非没有学习曲线,而且还有大量的框架和库可以让您忙碌起来。如果您正在寻找其他资源来学习或在工作中使用,请查看我们在 Envato 市场中提供的资源。

哦,不要忘记本教程的源代码可以在 GitHub 上找到。

以上是增強基於 Angular 的雜貨清單管理器中的專案管理:第 2 部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:社區,圖書館和資源Python vs. JavaScript:社區,圖書館和資源Apr 15, 2025 am 12:16 AM

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C到JavaScript:所有工作方式從C/C到JavaScript:所有工作方式Apr 14, 2025 am 12:05 AM

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能