- MEAN.JS 教程
- MEAN.JS - 首页
- MEAN.JS - 概述
- MEAN.JS - 架构
- 构建Node Web应用
- MEAN.JS - MEAN项目设置
- 构建静态路由Node Express
- MEAN.JS - 构建数据模型
- MEAN.JS - REST API
- 使用Angular的前端
- 应用中的Angular组件
- 使用Angular构建单页应用
- 构建SPA:进阶
- MEAN.JS 有用资源
- MEAN.JS - 快速指南
- MEAN.JS - 有用资源
- MEAN.JS - 讨论
MEAN.JS - 应用中的Angular组件
本章节,我们将向应用中添加Angular组件。它是一个Web前端JavaScript框架,允许使用模型-视图-控制器(MVC)模式创建动态的单页应用程序。在MEAN.JS 架构章节中,您已经了解了AngularJS如何处理客户端请求并从数据库获取结果。
了解AngularJS
AngularJS是一个开源的Web应用程序框架,它使用HTML作为模板语言,并扩展HTML的语法以清晰地表达您的应用程序组件。AngularJS提供了一些基本功能,例如数据绑定、模型、视图、控制器、服务等。有关AngularJS的更多信息,请参考此链接。
您可以通过在页面中添加Angular来使页面成为一个Angular应用程序。只需使用一个外部JavaScript文件即可添加它,该文件可以下载,也可以直接引用CDN版本。
假设我们已下载文件并通过以下方式将其本地添加到页面中:
<script src="angular.min.js"></script>
现在,我们需要告诉Angular此页面是一个Angular应用程序。因此,我们可以通过向<html>或<body>标签添加一个属性ng-app来实现,如下所示:
<html ng-app> or <body ng-app>
ng-app可以添加到页面上的任何元素,但通常将其放在<html>或<body>标签中,以便Angular可以在页面内的任何位置工作。
Angular应用程序作为一个模块
要使用Angular应用程序,我们需要定义一个模块。在这里,您可以分组与应用程序相关的组件、指令、服务等。模块名称由HTML中的ng-app属性引用。例如,我们将Angular应用程序模块名称命名为myApp,并可以在<html>标签中指定,如下所示:
<html ng-app="myApp">
我们可以使用以下语句在一个外部JavaScript文件中创建应用程序的定义:
angular.module('myApp', []); //The [] parameter specifies dependent modules in the module definition
定义控制器
AngularJS应用程序依赖于控制器来控制应用程序中的数据流。控制器是使用ng-controller指令定义的。
例如,我们将使用ng-controller指令以及您要使用的控制器的名称将控制器附加到body。在下面的代码行中,我们使用“myController”作为控制器的名称。
<body ng-controller="myController">
您可以将控制器(myController)附加到Angular模块(myApp),如下所示:
angular .module('myApp') .controller('myController', function() { // controller code here });
最好使用命名函数而不是匿名函数,以提高可读性、可重用性和可测试性。在下面的代码中,我们使用新的命名函数“myController”来保存控制器代码:
var myController = function() { // controller code here }; angular .module('myApp') .controller('myController', myController);
有关控制器的更多信息,请参考此链接。
定义作用域
作用域是一个特殊的JavaScript对象,它将控制器与视图连接起来,并包含模型数据。在控制器中,模型数据是通过$scope对象访问的。控制器函数采用$scope参数,该参数由Angular创建,它可以直接访问模型。
以下代码片段指定如何更新控制器函数以接收$scope参数并设置默认值:
var myController = function($scope) { $scope.message = "Hello World..."; };
有关控制器的更多信息,请参考此链接。在下一章中,我们将开始使用Angular创建单页应用程序。