日期:2014-05-16  浏览次数:20897 次

使用Angular.JS和ASP.NET创建单页应用

使用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"});