使用Angular.JS和ASP.NET創建單頁應用
英文原文:Creating Single Page Apps With Angular.JS and ASP.NET
周三(4 月 2 日)的 Build 大會上,David Catuhe 和 Jon Galloway 做了一個關于將 AngularJS 用于 ASP.NET 應用程序的演講。他們為開發者提供了一種方式,可以快速構建流行的單頁 Web 應用。
Angular 是由 Google 創建并運營的開源項目。顧名思義,這是一個基于 JavaScript 的庫,遵循模型-視圖-控制器(MVC)設計模式。如 Catuhe 和 Galloway 所說,Angular 使用依賴注入,使 ASP.NET 應用更加強大。要想啟用 Angular,只需要引入單個文件 angular.min.js。(NuGet 用戶可以獲取最新版本(beta)或穩定版本。)
他們指出,Angular 并不是一個非此即彼的方案,你完全可以僅使用其中的頁面選取功能。不管怎樣,Catuhe 和 Galloway 都建議在項目的 Scripts 文件夾下創建一個“apps”目錄,來組織文件。
壓縮 JS 文件時需要格外注意:由于會影響 Angular 的依賴注入,因此默認情況下對應用代碼進行壓縮會破壞應用程序本身。(Angular 教程文檔的“A Note on Minification”一節對此進行了詳細介紹。)
要真正在頁面中激活 Angular,需要在 html 標簽中添加“ng-app”:
<html ng-app … >
這可以通知 Angular 準備好做某些事情。Angular 通過其自帶的輕量級版本的 jQuery,使用$http 加載文件。如果項目已經安裝了 jQuery,Angular 將會使用該版本,以保持一致性。
Catuhe 和 Galloway 還展示了一個示例應用,一個顯示并存儲“萬智牌”信息的單頁應用(SPA)。單頁應用只用一個視圖來構建 UI,而 Angular 本身使用路由來定義這些視圖。
由于 Angular 中過深的鏈接會使 MVC 路由造成沖突,因此他們建議使用一個路由:
routes.MapRoute ( name: "Catch all route for SPA", url: "App/{*catchall}", defaults: new{ controller = "Home", action = "Index"});
還有一個關于顯示 HTML 的小技巧。如果 HTML 是視圖生成的,一切都沒有問題。但如果 HTML 來自文件(如 MyHTML.html),應該使用 IIS 重寫規則來改變 URL:
/myHTML.html -> /myHTML
要想觀看完整的 demo 應用,請查閱該演講的 Channel9 頁面。
<span id="shareA4" class="fl"> </span>