使用Angular.JS和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页面。
原文链接:Creating Single Page Apps With Angular.JS and ASP.NET