AngularJS(三):重复HTML元素、数据绑定

本文也同步发表在我的公众号“我的天空

 

重复HTML元素

 

在前端的页面编写中,我们会经常遇到重复HTML元素,譬如绘制表格、菜单等,如以下代码显示一个简单的li列表:

 

<body>
    <ul id="ul_cities">
    </ul>
</body>

 <script>
      window.οnlοad=function(){
          var cities=['上海','成都','北京','广州'];
          var ul=document.getElementById("ul_cities");
          var li;
          for(var i=0;i<cities.length;i ){
              li=document.createElement("li");
              li.innerHTML=cities[i];
              ul.appendChild(li);
          }
      }
</script>

示例代码AngularJS_03.html

 

在AngularJS中, 可以通过ng-repeat指令来方便的实现HTML元素的重复,如以下代码示例:

 

<body ng-app ng-init="cities=['上海','成都','北京','广州']">
    <ul>
        <li ng-repeat="city in cities">{{city}}</li>
    </ul>
</body>

示例代码AngularJS_04.html

 

以上代码中,我们首先用ng-app指令声明的AngularJS的应用范围,使用ng-init初始化了cities数组数据,随后在li标签内加入了ng-repeat命令,表明其是一组重复的HTML元素,其重复的数据源是cities,最后在li里写入表达式{{city}},表明其显示变量city。

 

比较两个示例,可以发现使用ng-repeat命令后,代码变得更加简洁,我们也初步领略了AngulerJS带来的好处。接下来的代码演示如何在表格中显示一组对象数组:

 

<body ng-app ng-init="persons=[
    {name:'张三',sex:'男',age:23},
    {name:'李四',sex:'男',age:18},
    {name:'王红',sex:'女',age:24}]">

    <table>
        <tr ng-repeat="person in persons">
            <td>{{person.name}}</td>
             <td>{{person.sex}}</td>
            <td>{{person.age}}</td>
       </tr>
    </table>
</body>

示例代码AngularJS_05.html

 

数据绑定

 

通过ng-model指令可以将值绑定在指定元素上,典型的应用是不同元素间的数据同步。譬如我们希望在一个文本框内输入的内容同步的在其他元素上显示,则可以使用数据绑定,如下所示:

 

<body ng-app>
    <input type="text" ng-model="a">
    <p>你输入的是:{{a}}</p>
</body>

示例代码AngularJS_06.html

 

在以上这段代码中,我们在一个input上使用了数据绑定指令ng-model,其绑定的目标是a变量,而在p标签中,包含了一个表达式,显示a的值。这样当input文本框里的内容发生改变时,a的值也发生同步变化,而这种变化又反应在p标签的表达式中,这样便完成了文本框内容与p标签内容的绑定。

 

AngulerJS中的绑定是双向的,如以下代码,无论哪一个文本框的内容发生变化,另一个也相应同步修改:

<body ng-app>
    <input type="text" ng-model="a">
    <input type="text" ng-model="a">
    <p>你输入的是:{{a}}</p>
</body>

示例代码AngularJS_07.html

 

 

该系列的示例代码

 

  https://github.com/panyongwow/angularJS

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hyper-v下的ubuntu虚拟机分辨率修改

修改/etc/default/grub sudo vim /etc/default/grub 改变前: GRUB_CMDLINE_LINUX_DEFAULT"quiet splash" 改变后: GRUB_CMDLINE_LINUX_DEFAULT"quiet splash videohyperv_fb:1920x1080" 更新grub配置 sudo update-grub 重启即可生效 sudo reboot 转载于:ht…

gopacket 在 windows 上面遇到的问题

前阵子有个需求是使用 golang 抓包改包&#xff0c;我用到了 gopacket 这个包&#xff0c;但是出了一些小问题。 我按照网上的方法进行使用 OpenLive 抓包&#xff0c;发现并不行&#xff0c;报错 error open adapter 啥啥啥。 经过调试发现根本找不到这个网卡&#xff0c;需要…

使用表中的数组数据类型

在这篇文章中&#xff0c;我想跟进我以前关于Oracle集合数据类型的文章 &#xff0c;并且我将集中精力使用af&#xff1a;table组件中的oracle.jbo.domain.Array属性。 因此&#xff0c;在我的数据库中&#xff0c;我具有以下SQL类型&#xff1a; create or replace type var…

最伟大最不可思议最令人感动的父亲

转载于:https://www.cnblogs.com/chenou/archive/2007/10/23/935014.html

关于数据库名、实例名

最近因看到论坛有人问起这方面的东西&#xff0c;将自己的理解加上查阅相关资料整理如下&#xff0c;如果不全或不当的地方&#xff0c;望指正并补全它。 数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID) 在ORACLE7、8数据库中只有数据库名(db_…

linux 文件inode,linux文件系统-inode学习整理

linux文件系统-inode学习整理介绍linux文件系统可讲的模块有很多&#xff0c;包括文件系统整体架构、文件系统分类、虚拟文件系统以及文件系统存储结构等等&#xff0c;本文主要介绍的是文件系统的存储结构&#xff0c;也就是本文的重点-inode。文件存储结构首先从开天辟地开始…

操作方法:Maven的Spring Boot和Thymeleaf

Spring Boot是一款很棒的软件&#xff0c;可让您在几秒钟内引导Spring应用程序。 它确实有效。 尽可能少的配置即可上手。 而且仍然可以更改默认值。 让我们看看用Thymeleaf和Maven引导Spring MVC并在IntelliJ中使用它是多么容易。 Spring MVC Thymeleaf与Maven的基本设置 确…

csharp: 百度语音合成

public string API_id "3333"; //你的IDpublic string API_record null; public string API_record_format null; public string API_record_HZ null;public string API_key "geovindu"; //你的KEYpublic string API_secret_key "geovindu"…

20080408 - VS2003 中 Jscript 文件中文乱码问题

在 VS2003 中新建 Jscript 文件中使用中文时&#xff0c;如果和网页的编码不一致&#xff0c;有可能会出现中文乱码问题。 而 VS2003 的Web页面默认是用 UTF-8&#xff0c;这是多语的首选方案。 但 VS2003 产品的本地化工作可能做得不到位&#xff0c;在其中新建的 Jscript 文件…

一个简单的发布工具

自己写的一个简单工具&#xff0c;可以把做好的程序中的.cs,.sln,等代码文件排除掉&#xff0c;只剩下页面文件 是用.net 2.0做的程序文件 转载于:https://www.cnblogs.com/itants/archive/2007/10/24/935824.html

用于大型事件处理的Akka Java

我们正在设计一个大型的分布式事件驱动系统&#xff0c;用于跨事务数据库的实时数据复制。 来自源系统的数据&#xff08;消息&#xff09;在到达目的地之前经历了一系列转换和路由逻辑。 这些转换是多进程和多线程的操作&#xff0c;包括可以同时执行的较小的无状态步骤和任务…

pygame-KidsCanCode系列jumpy-part8-记录历史最高分

通常在多玩家的游戏中&#xff0c;每个玩家都会有自己的得分&#xff0c;最高分数会成为该游戏的最佳记录。这一篇&#xff0c;学习下如何记录最高得分&#xff1a;&#xff08;为了简化代码&#xff0c;本文采用文件方式&#xff0c;仅记录本机得分&#xff0c;明白原理后&…

linux下查看进度命令,在Linux系统中使用Coreutils Viewer显示命令运行进度

Coreutils Viewer(cv)是一个简单的程序&#xff0c;它可以用于显示任何核心组件命令(如&#xff1a;cp、mv、dd、tar、gzip、gunzip、cat、grep、fgrep、egrep、cut、sort、xz、exiting)的进度。它使用文件描述信息来确定一个命令的进度&#xff0c;比如cp命令。cv之美在于&…

每个Java开发人员都应该阅读的10本书

我已经阅读了自己的软件开发书籍&#xff0c;并且发现发现一本我想多次阅读的书籍非常罕见。 但是&#xff0c;有时我会发现一本书&#xff0c;每次阅读时都会教给我新的东西。 这篇博客文章是对这些稀有宝石的致敬。 现在&#xff0c;我毫不犹豫地向您介绍十本书&#xff0c…

存储过程生成流水号

1&#xff0c;首先在数据库中创建一个存放流水号的表 CREATE TABLE [dbo].[NumSeq] ([Cate] [varchar] (2) NOT NULL ,[DateNo] [varchar] (4) NOT NULL ,[Seq] [int] NULL ,[CrTime] [datetime] NOT NULL ) 上面的代码中&#xff0c;Cate 字段为流水号的头&#xff0c;可以…

tennylvHTML5实现屏幕手势解锁(转载)

来源:https://github.com/lvming6816077/H5lockhttp://threejs.org/examples/http://www.inf.usi.ch/phd/wettel/codecity-download.html (JSCity&#xff1a;把源码可视化成建筑物的 JS 库)http://www.alloyteam.com/2015/07/html5-shi-xian-ping-mu-shou-shi-jie-suo/ (Web前…

Linux中mysql的卸载和重装,linux mysql 卸载后重装

$sudo apt-get remove mysql-common清理残留数据:$sudo dpkg -l |grep ^rc|awk {print $2} |sudo xargs dpkg -P按照正常安装步骤安装注意:如果你想进行远程访问或控制&#xff0c;那么你要做两件事&#xff1a;其一&#xff1a;mysql>GRANT ALL PRIVILEGES ON xoops.* TO x…

NOIP模拟赛(by hzwer) T3 小奇回地球

【题目背景】 开学了&#xff0c;小奇在回地球的路上&#xff0c;遇到了一个棘手的问题。 【问题描述】 简单来说&#xff0c;它要从标号为 1 的星球到标号为 n 的星球&#xff0c;某一些星球之间有航线。 由于超时空隧道的存在&#xff0c;从一个星球到另一个星球时间可能会倒…

oracle 执行多条insert 语句

其实这是一个sqlserver的脚本改的。用脚本的原因是&#xff1a;当时我的oracle不能导入execl,也不能从别的数据库直接导入&#xff0c;最后就用脚本了。 insert all INTO TestA (ID, tbname, colname, coltxt, collen, coltype, coloper, colcontent) VALUES(1, A主表, ZHD0A00…

JUnit ExpectedException规则:超越基础

JUnit测试中有多种处理异常的方法。 正如我在以前的一篇文章中所写的那样 &#xff0c;我最好的方法是使用org.junit.rules.ExpectedException规则。 基本上&#xff0c;规则是用org.junit.Before &#xff0c; org.junit.After &#xff0c; org.junit.BeforeClass或org.junit…