Angular 4 学习指南

Angular 是一个流行的JavaScript框架,以其丰富的数据绑定功能而闻名。Angular的核心是数据绑定,它使得HTML和JavaScript对象之间的交互变得非常简单。Angular团队将其命名为MVW框架,其中"M"代表JavaScript对象,"V"代表HTML UI,"W"代表绑定模型和UI的代码。在本教程中,将通过16个章节详细介绍所有可能的实践步骤。

步骤1:创建一个简单的HTML "Hello World" 项目

首先,将创建一个简单的项目并引入Angular。在Visual Studio中创建任何项目时,它总是带有微软的标志。为了保持Angular的纯粹性,希望创建一个没有微软标志的简单项目,但同时希望获得Visual Studio intellisense的好处。这个项目将只包含HTML、CSS、JS文件和Angular文件。在硬盘上创建一个简单的文件夹,打开Visual Studio,点击文件->打开->网站,如下面的图所示。当以网站的形式打开一个文件夹时,Visual Studio不会添加不必要的文件,如web.config和global.asax文件等。

完成之后,将看到一个非常简单的项目,它没有任何东西。它只是一个没有微软特定文件的简单项目。在这个项目中,让添加一个简单的HTML页面,并将其命名为"HelloWorld.html"。在这个HTML页面中,将创建一个名为"txtHello"的简单输入文本框,这个文本框将与"Hello"JavaScript函数/类绑定。

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> </title> </head> <script> function Hello() { this.txthello = "HELLO WORLD"; } </script> <body> <div id="HelloWorldScreen"> <input id="txthello" type="text" /> <br /> <br /> </div> </body> </html>

步骤2:获取AngularJS框架

现在已经准备好了HTML UI和JavaScript类,让首先获取AngularJS框架。右键单击项目,然后点击管理NuGet包,如下面的图所示:在搜索文本框中搜索Angular,并从列表中安装“AngularJS”核心。可以看到很多其他Angular包,这些是Angular的扩展。将逐步看到其他包。最重要的是Angular核心,所以点击安装并获取它。

在安装过程中,将出现下面的对话框(选择项目),点击确定。安装完成后,可以看到Angular文件在scripts文件夹中。现在使用script标签引用“Angular”文件,如下所示(见粗体行)。

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> </title> </head> <script src="Scripts/angular.js"> </script> ..... 代码已简化

步骤3:应用ng-controller、ng-model和表达式

现在为了将“HelloWorld”类与hello HTML文本框绑定,需要做两件事:创建一个“HelloWorld”类的实例。其次,将“HelloWorld”对象的属性设置为文本框。为此,需要使用“ng-controller”和“ng-model”。“ng-controller”和“ng-model”被称为指令。记住Angular是一种声明式编程语言。声明式意味着只需应用指令,事情就会工作。如果对这种声明式工作不熟悉,建议快速查看下面的视频链接,其中用一个例子进行了解释。

“ng-controller”指令创建了一个“Helloworld”控制器的对象,并将其与UI DIV标签绑定,“ng-model”将属性与文本框与“txtHello”属性绑定。要将属性显示在屏幕上,需要使用表达式“{{}}”,如下所示。因此,当在文本框“txthello”中输入时,它将显示在“div1”标签内。

<div id="HelloWorldScreen" ng-controller="HelloWorld"> <input ng-model="txthello" id="txthello" type="text"/><br /><br /> <div id="div1">{{txthello}}</div> </div>

步骤4:ng-app和理解作用域

如果“ng-controller”指令创建实例,那么如果HTML页面中有多个“ng-controller”指令,会发生什么?它会创建两个实例还是一个实例?思考一下……

显然,作为开发人员,希望不同的“HelloWorld”实例与两个DIV HTML UI绑定。这正是AngularJS所做的,因为它创建了两个不同的实例。但现在,如果在同一HTML页面中有两个实例,这两个实例的作用域是什么,是整个HTML页面还是其他什么?

这两个实例的作用域是

标签的开始和结束。这些实例是由Angular自动创建的,当Angular遇到“ng-controller”标签时。现在,可能有一种情况,希望这些控制器实例相互通信,共享一些公共数据。这就是有“ng-app”的地方。

“ng-app”创建了一个顶级对象,它控制所有控制器对象,并且它们也有助于在控制器实例之间共享数据。

<body ng-app="myApp"> <div id="HelloWorldScreen" ng-controller="HelloWorld"> <!-- 代码已简化 --> </div> </body>

步骤5:引导项目并查看结果

现在已经设置好了,需要一些代码来帮助Angular启动。希望Angular开始创建控制器对象,ng-app对象并进行绑定。所以需要两行代码,如下所示。第一行创建应用程序实例,第二行将控制器对象添加到应用程序中。

var myApp = angular.module("myApp", []); myApp.controller("HelloWorld", Hello);

就是这样,按Ctrl + F5查看自动绑定的效果。当在文本框中输入时,表达式会更新。

最终完整代码

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> </title> </head> <script src="Scripts/angular.js"> </script> <script> function Hello($scope) { $scope.txthello = "HELLO WORLD"; } var myApp = angular.module("myApp", []); myApp.controller("HelloWorld", Hello); </script> <body ng-app="myApp"> <div id="HelloWorldScreen" ng-controller="HelloWorld"> <input ng-model="txthello" id="txthello" type="text"/> <br /> <br /> <div id="div1">{{txthello}}</div> </div> </body> </html>
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485