Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

AngularJS 模块


AngularJS 模块定义了一个应用程序。

模块是应用程序不同部分的容器。

模块是应用程序控制器的容器。

控制器始终属于模块。


创建模块

模块是使用 AngularJS 函数 angular.module 创建的

<div ng-app="myApp">...</div>

<script>

var app = angular.module("myApp", []);

</script>

"myApp" 参数引用了应用程序将在其中运行的 HTML 元素。

现在,您可以向 AngularJS 应用程序添加控制器、指令、过滤器等等。


添加控制器

向您的应用程序添加控制器,并使用 ng-controller 指令引用该控制器

示例

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>

var app = angular.module("myApp", []);

app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
});

</script>
自己尝试 »

您将在本教程的后面学习更多关于控制器的知识。



添加指令

AngularJS 有一组内置指令,您可以使用它们来向应用程序添加功能。

要了解完整的参考,请访问我们的 AngularJS 指令参考

此外,您可以使用模块将自己的指令添加到应用程序中

示例

<div ng-app="myApp" w3-test-directive></div>

<script>
var app = angular.module("myApp", []);

app.directive("w3TestDirective", function() {
  return {
    template : "I was made in a directive constructor!"
  };
});
</script>
自己尝试 »

您将在本教程的后面学习更多关于指令的知识。


模块和控制器在文件中的应用

在 AngularJS 应用程序中,将模块和控制器放在 JavaScript 文件中很常见。

在本示例中,"myApp.js" 包含应用程序模块定义,而 "myCtrl.js" 包含控制器

示例

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script src="myApp.js"></script>
<script src="myCtrl.js"></script>

</body>
</html>
自己尝试 »

myApp.js

var app = angular.module("myApp", []);

模块定义中的 [] 参数可用于定义依赖模块。

没有 [] 参数,您不是创建一个新模块,而是检索一个现有模块。

myCtrl.js

app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName= "Doe";
});

函数会污染全局命名空间

应在 JavaScript 中避免使用全局函数。它们很容易被其他脚本覆盖或销毁。

AngularJS 模块通过将所有函数保持在模块本地来减少此问题。


何时加载库

虽然在 HTML 应用程序中通常将脚本放在 <body> 元素的末尾,但建议您在 <head> 中或 <body> 的开头加载 AngularJS 库。

这是因为只有在加载库后才能编译对 angular.module 的调用。

示例

<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
});
</script>

</body>
</html>
自己尝试 »

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.