Angular 环境搭建指南

Angular是目前最受欢迎的单页应用(SPA)框架之一。本文的目标读者是希望学习Angular的.NET开发者。将从如何在Visual Studio 2017中设置Angular环境开始,逐步介绍Angular的所有特性。

自从Angular首次推出以来,它已经经历了很多变化。最初版本的AngularJS是一个简单的JavaScript框架,它允许开发者通过额外的属性来扩展HTML DOM元素以执行用户操作。早期,只需要引用一个JS文件就可以在任何项目中使用AngularJS。后来,Angular推出了2.x版本,这是一个完全不同的架构。最近,Angular发布了6.x版本,它继承了从Angular 2开始的相同架构,并增加了额外的特性和功能。

现在,不能仅仅通过引用一个文件来使用Angular,因为模块化的原因,这是好事。无论想要使用哪个模块,都可以导入并在该组件中使用。

设置环境

在本节中,将在Visual Studio2017中设置Angular环境。由于Angular与ASP.NET Core配合得很好,它已经提供了中间件、类和方法来应对SPA框架,将使用这些。已经安装了最新的.NET Core SDK 2.1。如果已经安装了.NET Core SDK 2.0,那么没有必要再安装,但是最好升级。

一个先决条件是,机器上应该安装了Node.js和Typescript,以便安装Angular的包并稍后运行。

让从在Visual Studio中创建一个项目开始。在这里选择了Web API项目,这样就得到了一个没有视图或预先设置的空项目。在添加Angular 6之前,请尝试构建解决方案,以确保一切都正常工作,并且没有任何依赖项问题。

现在,让通过Angular CLI将Angular 6应用程序添加到这个项目中。为此,请打开命令提示符并导航到创建项目的文件夹。在例子中,添加到了BookStore文件夹,所以可以在此处运行命令来安装Angular CLI。

npm install -g @angular/cli

安装Angular CLI后,现在让安装Angular。确保在运行命令时,位于拥有.csproj文件的同一位置。

ng new ClientApp

命令成功运行后,将看到如下所示的解决方案。

使用代码

为了成功运行应用程序,需要在C#代码中做一些更改。

添加中间件以支持.NET Core App中的SPA。为此,请打开Startup.cs并注册SPA服务,该服务可以提供静态文件以供单页应用程序(SPA)使用。因此在ConfigureServices方法中添加以下内容:

services.AddSpaStaticFiles(c => { c.RootPath = "ClientApp/dist"; });

c.RootPath = "ClientApp/dist"定义了所有的静态文件将被放置的位置。现在问题出现了:如果已经有了wwwroot,它意味着在.NETCore中持有静态文件,为什么需要这个路径。这个话题将在稍后在系列中到达最终构建和部署步骤时被捕捉。

在此之后,为了支持SPA文件,.NET Core提供了中间件,必须在Configure方法中添加这些:

app.UseStaticFiles(); app.UseSpaStaticFiles(); app.UseMvc(routes => { routes.MapRoute(name: "default", template: "{controller}/{action=index}/{id}"); }); app.UseSpa(spa => { spa.Options.SourcePath = "ClientApp"; if (env.IsDevelopment()) { spa.UseAngularCliServer(npmScript: "start"); } });

这将确保所有静态内容都将从ClientApp文件夹加载。

由于从VS 2017创建了一个API项目,需要更新Properties/launchSettings.json中的启动设置。删除启动URL键值对:

"launchUrl": "api/values"

,然后保存文件。

如果在IE10或IE 11上运行应用程序,可能会在vendor.js或polyfill.js上遇到错误。

为了克服这个问题并在IE 10、IE 11上运行,更喜欢这样做,因为它有助于轻松调试。转到polyfills.ts文件,并取消注释与IE相关的部分。

构建和运行应用程序

是时候最终构建并运行应用程序了。让看看会发生什么:

哇!它工作了。

在本文中,学习了如何在Visual Studio2017中的ASP.NETCore应用程序中设置Angular。在IE浏览器上运行应用程序时遇到了一个问题,必须识别并更新polyfills.ts。这是与Angular一起开始旅程的第一步。已经准备好了环境,现在,将在下一篇文章中继续了解和创建一个基本的Angular应用程序。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485