AngularJS(二)——常见指令以及下拉框实现
前言
学完AngularJS,总体上感觉没什么新鲜的东西,但是又感觉每一步都很新鲜,因为没有见过,又因为学到的语法函数和JavaScript差不多,本篇主要介绍一些AngularJS的指令,常见指令和自定义指令。
内容
指令:
官方定义:
·通过被称为指令的新属性来扩展HTML;
·通过内置的指令来为应用添加功能;
·允许你自定义指令;
在AngularJS中个人认为相当于函数,就是说不管我函数体的实现放到哪里了,我可以采用指令,对指定的scope产生特定的命令。
常见指令:
AngularJS指令 |
官方描述 |
个人理解 |
ng-app |
定义应用程序的根元素 |
规定AngularJS起作用的作用域 |
ng-bind |
绑定HTML元素到应用程序数据 |
和平时用的那种数据绑定效果是一样的,但是采用这种做法,可以及时更新绑定内容,不用进行反复的刷新 |
ng-bind-html |
绑定HTML元素的innerHTML到应用程序数据,并移除HTML字符串中危险字符 |
其实和ng-bind一样,没有多大的差别,这个的写法更加规范(同时插入同一个文本内容,效果一样) |
ng-controller |
定义应用的控制器对象 |
在需要控制的HTML标签元素里面,定义控制器,改变控制器对象达到改变HTML的目的 |
ng-include |
在应用中包含HTML文件 |
|
ng-init |
定义应用的初始化值 |
大概就是把想要初始化的地方,采用ng-init指令完成 |
ng-model |
绑定HTML控制器的值到应用数据 |
其实就是绑定一个用来显示的变量,通过控制器部分给控制该值的读取 |
ng-repeat |
定义集合中每项数据的模板 |
这个非常常用,主要就是重复循环一个标签,循环显示容器类型的值,常用在下拉表中 |
ng-options |
在<select>列表中指定<options> |
下拉表的时候非常有用的,但是和ng-repeat在使用的时候,是区别的,后面会举例讲到 |
ng-selected |
指定元素的selected属性 |
大概理解为给下拉框一个默认值,这样做就是通过该指令,不但可以给默认值而且在读取的时候避免了常规的DOM操作 |
ng-checked |
规定元素是否被选中 |
|
ng-class |
指定HTML元素使用的CSS类 |
|
ng-class-even |
类似ng-class,但只在偶数行起作用 |
|
ng-class-even |
类似ng-class,但只在奇数行起作用 |
|
ng-show |
显示或隐藏HTML元素 |
|
ng-hide |
隐藏或显示HTML元素 |
举例:
描述:通过表达一个下拉框效果,来说明ng-options和ng-repeat的区别点
证明:ng-repeat是通过数组来循环HTML代码,但ng-options指令更适合创建下拉列表,因为ng-options的选项的一个对象,ng-repeat是一个对象,对象有属性可以当容器存放属性值。
ng-repeat部分DEMO
<div ng-app="myApp" ng-controller="myCtrl">
<p>选择网站:</p>
<select ng-model="selectedSite">
<option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
</select> <h1>你选择的是: {{selectedSite}}</h1>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.sites = [
{site : "Google", url : "http://www.google.com"},
{site : "Runoob", url : "http://www.runoob.com"},
{site : "Taobao", url : "http://www.taobao.com"}
];
});
</script>
ng-options部分DEMO
<div ng-app="myApp" ng-controller="myCtrl">
<p>选择网站:</p>
<select ng-model="selectedSite" ng-options="x.site for x in sites">
</select>
<h1>你选择的是: {{selectedSite.site}}</h1>
<p>网址为: {{selectedSite.url}}</p>
</div> <script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.sites = [
{site : "Google", url : "http://www.google.com"},
{site : "Runoob", url : "http://www.runoob.com"},
{site : "Taobao", url : "http://www.taobao.com"}
];
});
</script>
通过上面对比可以看出,选择值为一个对象的时候,可以获得更大的信息,应用也更加灵活。
小结
除了上面的指令外AngularJS还有很多其他诱人的指令等待我们去认识它,因为上面的有个人小小的见解,如果有不恰当的地方,望大神指正。
感谢您的宝贵时间···
AngularJS(二)——常见指令以及下拉框实现的更多相关文章
- 使用ng-options指令创建下拉框
今天在学习AngularJs中使用ng-options指令创建下拉框时遇到点问题,这里总结一下. 其实,使用ng-options指令创建下拉框很简单,只需要绑定两个属性. ng-options指令用于 ...
- Selenium常用操作汇总二——如何操作select下拉框
下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...
- FineReport——JS二次开发(下拉框)
下拉框显示多列时,输入的内容检索的内容为显示值整行数据,而不是实际值. 下拉框选择之后,控件显示的是显示值而非实际值. 对于下拉框显示队列,可以有多种方法,但是经过测试大多数方法不适用,检索效率太低, ...
- jQuery打造智能提示插件二(可编辑下拉框)
在上一篇 jQuery打造智能提示插件 上改进,增加下拉按钮,修复点击下拉区域外不隐藏BUG 效果 下拉按钮素材: js封装,注意红色部分为BUG修复,然后传入boxwidth不带px: /* /// ...
- angularJS实现可编辑的下拉框
将angularJS与插件select2结合使用即可 <!DOCTYPE html><html lang="en"><head> < ...
- selenium python (十二)下拉框的处理
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #下拉框在web页面上非常常见,对于下拉框的处理采用二次定位的方法进行元 ...
- DropDownList单选与多选下拉框
一.单选DropDownList传值 1.添加界面的DropDownList显示值问题 (1)在方法内添加ViewData的方法: var ad = new UnitsRepository(); Vi ...
- 记录几个爬取动态网页时的问题(下拉框,旧的元素无法获取,获取的源代码和f12看到的不一致,爬取延迟)
更新.....这个动态网页其实直接抓取ajax请求就可以了,很简单,我之前想复杂了,虽然也实现了,但是效率极低,不过没关系,就当作是对Selenium的一次学习吧 1.最近在爬取一个动态网页,其中为了 ...
- 基于Bootstrap的下拉框插件bootstrap-select
写在前面: 在这次的项目中,没有再使用liger-ui做为前端框架了,改为了Bootstrap,这次也好接触下新的技术,在学习的过程中发现,Bootstrap的一些组件基本都是采用class的形式,就 ...
随机推荐
- 蓝桥杯 算法训练 ALGO-117 友好数
算法训练 友好数 时间限制:1.0s 内存限制:256.0MB 问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:1+3=4 ...
- declare handler 声明异常处理的语法
声明异常处理的语法 DECLARE {EXIT | CONTINUE} HANDLER FOR {error-number | SQLSTATE error-string | condition} S ...
- [译] SystemTap
SystemTap 什么是system Tap ? SystemTap 提供环境用来获得更多关于内核几乎所有组件的信息,用以被进一步分析.SystemTap也可以被当作一种工具,为用户研究和监控内核详 ...
- 发任务找不到test-unit报错
发任务的时候因找不到gem包test-unit报错, 出错行: require 'test/unit' require 'test/unit/testresult' 解决办法如下 1.通过命令查看ge ...
- vsftpd 被动模式与主动模式
vsftpd 被动模式与主动模式 VSFTP文件与目录/usr/sbin/vsftp vsftp的主程序/etc/rc.d/init.d/vsftp vsftp的启动脚本/etc/vsftpd/vsf ...
- SpringMVC + AJAX 实现多文件异步上传
转自:https://www.jianshu.com/p/f3987f0f471f 今天,我就这个问题来写一篇如何用 SpringMVC + AJAX 实现的多文件异步上传功能.基本的代码还是沿用上篇 ...
- chromium浏览器开发系列第二篇:如何编译最新chromium
说一下为什么这么晚才发第二篇,上周和这周department的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了.所以请大家包涵! 上期回顾: chromium源码下载: 1. ...
- 第一天:tomcat相关知识和浏览器的访问机制
1.tomcat的目录结构 1)bin目录:启动和关闭tomcat以及其他的脚本命令 2)conf目录:存放各种配置文件 a.server.xml配置文件的配置: *<host/>标签: ...
- sql 一些偶尔会用到的写法和函数 不定时更新
小数转整数: --round() 遵循四舍五入把原值转化为指定小数位数,如: ) -- =1 ) -- =2 --floor() 向下舍入为指定小数位数 如: SELECT floor(1.45) - ...
- C++——override
override关键字作用: 如果派生类在虚函数声明时使用了override描述符,那么该函数必须重载其基类中的同名函数,否则代码将无法通过编译.举例子说明 struct Base { virtual ...