Angular.js 应用的双向绑定

举报
汪子熙 发表于 2024/06/28 21:43:00 2024/06/28
【摘要】 效果:源代码:<html ng-app> <head> <meta charset="utf-8"> <title>Angular.js Example</title> <script src="angular/angular.js"></script> <script> function NameCtrl($scope){ $scope.f...

效果:

源代码:

<html ng-app>
  <head>
    <meta charset="utf-8">
    <title>Angular.js Example</title>
    <script src="angular/angular.js"></script>
    <script>
      function NameCtrl($scope){
        $scope.firstName = 'John';
        $scope.lastName = 'Smith';
      }
    </script>
  </head>
  <body ng-controller="NameCtrl">
    First name:<input ng-model="firstName" type="text"/>
    <br>
    Last name:<input ng-model="lastName" type="text"/>
    <br>
    Hello {{firstName}} {{lastName}}
  </body>
</html>

这段代码是一个非常基础的 AngularJS 示例,展示了如何使用 AngularJS 创建一个简单的交互式用户界面。在这个例子中,我们定义了一个简单的控制器 NameCtrl,它管理一个表单,表单中包含用户的 firstNamelastName。随着用户输入的变化,页面上相应的部分也会实时更新以反映这些变化。下面将详细分析这段代码的每个部分:

HTML 结构

<html ng-app>
  <head>
    <meta charset="utf-8">
    <title>Angular.js Example</title>
    <script src="angular/angular.js"></script>

这段代码首先定义了 HTML 文档的基本结构,包括 headbody<html ng-app> 表示整个 HTML 页面是一个 AngularJS 应用的根元素。ng-app 指令是用来标记 AngularJS 应用的启动点,它告诉 AngularJS 从这里开始编译和执行代码。

head 部分,除了设置字符集和页面标题外,最重要的是通过 <script src="angular/angular.js"></script> 引入了 AngularJS 的库文件。这是使用 AngularJS 开发的前提,因为所有的功能都需要通过这个库来实现。

JavaScript 控制器

<script>
  function NameCtrl($scope){
    $scope.firstName = 'John';
    $scope.lastName = 'Smith';
  }
</script>

这段 <script> 定义了一个名为 NameCtrl 的控制器。在 AngularJS 中,控制器是用来定义应用的业务逻辑的地方。这里 NameCtrl 控制器接受一个 $scope 对象作为参数,$scope 是一个特殊的对象,用于双向绑定数据和视图。控制器内部设置了 $scope.firstName$scope.lastName,初始化为 JohnSmith。这两个属性存储的值将用于数据绑定,展示在视图中,并且能够响应视图上的数据变化。

视图和数据绑定

<body ng-controller="NameCtrl">
  First name: <input ng-model="firstName" type="text" />
  <br>
  Last name: <input ng-model="lastName" type="text" />
  <br>
  Hello `{{firstName}} {{lastName}}`
</body>
</html>

body 标签中,我们使用 ng-controller="NameCtrl" 将此部分的视图与 NameCtrl 控制器关联起来。这意味着在这部分的 HTML 中可以使用控制器定义的 $scope 上的属性和方法。

<input ng-model="firstName" type="text" /><input ng-model="lastName" type="text" /> 使用 ng-model 指令绑定到 $scope 上的 firstNamelastName 属性。这种绑定是双向的:视图(input 输入框)上的任何变化都会实时更新到 $scope 的属性上,反之亦然。

Hello{{firstName}} {{lastName}}`` 则是 AngularJS 的插值表达式。这里,它将 firstNamelastName 的当前值插入到 HTML 中,实现了数据的实时显示。当 input 中的值发生改变时,由于 $scope 属性的双向绑定,插值表达式中的内容也会立即更新。

总结

这个示例展示了 AngularJS 的一些核心特性:模块化控制器、数据绑定、指令以及表达式。通过这些特性,开发者可以快速构建动态交互的网页应用。AngularJS 通过其数据绑定和依赖注入的特点,使得开发复杂的单页应用(SPA)变得更加高效和简单。在实际应用中,这种模式可以扩

展到更复杂的业务逻辑和更多的数据处理,展示出 AngularJS 强大的开发能力。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。