前言

学完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(二)——常见指令以及下拉框实现的更多相关文章

  1. 使用ng-options指令创建下拉框

    今天在学习AngularJs中使用ng-options指令创建下拉框时遇到点问题,这里总结一下. 其实,使用ng-options指令创建下拉框很简单,只需要绑定两个属性. ng-options指令用于 ...

  2. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  3. FineReport——JS二次开发(下拉框)

    下拉框显示多列时,输入的内容检索的内容为显示值整行数据,而不是实际值. 下拉框选择之后,控件显示的是显示值而非实际值. 对于下拉框显示队列,可以有多种方法,但是经过测试大多数方法不适用,检索效率太低, ...

  4. jQuery打造智能提示插件二(可编辑下拉框)

    在上一篇 jQuery打造智能提示插件 上改进,增加下拉按钮,修复点击下拉区域外不隐藏BUG 效果 下拉按钮素材: js封装,注意红色部分为BUG修复,然后传入boxwidth不带px: /* /// ...

  5. angularJS实现可编辑的下拉框

    将angularJS与插件select2结合使用即可 <!DOCTYPE html><html lang="en"><head>    < ...

  6. selenium python (十二)下拉框的处理

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #下拉框在web页面上非常常见,对于下拉框的处理采用二次定位的方法进行元 ...

  7. DropDownList单选与多选下拉框

    一.单选DropDownList传值 1.添加界面的DropDownList显示值问题 (1)在方法内添加ViewData的方法: var ad = new UnitsRepository(); Vi ...

  8. 记录几个爬取动态网页时的问题(下拉框,旧的元素无法获取,获取的源代码和f12看到的不一致,爬取延迟)

    更新.....这个动态网页其实直接抓取ajax请求就可以了,很简单,我之前想复杂了,虽然也实现了,但是效率极低,不过没关系,就当作是对Selenium的一次学习吧 1.最近在爬取一个动态网页,其中为了 ...

  9. 基于Bootstrap的下拉框插件bootstrap-select

    写在前面: 在这次的项目中,没有再使用liger-ui做为前端框架了,改为了Bootstrap,这次也好接触下新的技术,在学习的过程中发现,Bootstrap的一些组件基本都是采用class的形式,就 ...

随机推荐

  1. Java并发 两个线程交替执行和死锁

    今天看到一个题:两个线程交替打印奇数和偶数,即一个线程打印奇数,另一个打印偶数,交替打印从1到100.想了下有多重实现方法. wait和notify方法: public class OddEven { ...

  2. 使用 acl 库针对 C++ 对象进行序列化及反序列编程

    在开发网络应用程序时,各个模块之间的数据通信可谓是家常便饭,为了应对这些数据通信时数据交换的要求,程序员发明了各种数据格式:采用二进制数据结构(早期 C 程序员).采用 XML.采用SOAP(坑人的设 ...

  3. python第三十二天-----算法

    算法(Algorithm):一个计算过程,解决问题的方法时间复杂度:用来评估算法运行效率的一个东西ps:在日常使用中,请使用sort(),because no zuo no die! 1.冒泡排序:指 ...

  4. “百度杯”CTF比赛 九月场

    Test: 题目提示查资料 打开地址,是一个海洋cms 海洋cms有个前台getshell的漏洞 在地址后加上/search.php?searchtype=5&tid=&area=ev ...

  5. php字符型转整型

    $arr = array(0=>1,"aa"=>2, 3, 4); foreach($arr as $key=>$val){ print($key == &quo ...

  6. Shell编程进阶 1.5 if逻辑判断

    逻辑判断 vim if.sh #!/bin/bash ## ## a= ] then echo "a>3" fi sh if.sh a>3 vim if2.sh #!/ ...

  7. 【Android 多媒体应用】使用MediaCodec将摄像头采集的视频编码为h264

    MainActivity.java import android.app.Activity; import android.graphics.ImageFormat; import android.h ...

  8. TCP/IP 笔记 1.3 IP:网际协议

    ---恢复内容开始--- I P是T C P / I P协议族中最为核心的协议.所有的 T C P.U D P.I C M P及I G M P数据都以I P数据报格式传输. 不可靠( u n r e ...

  9. 支撑矢量机SVM

    1.线性SVM 首先,回顾一下SVM问题的定义,如下: 线性约束很烦,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了.其对应的拉格朗日对偶形式 ...

  10. ROS Learning-016 Arduino-For-ROS-001 搭建 Arduino 和 ROS 之间相连接的开发环境

    Arduino For ROS-001 - 搭建 ROS 和 Arduino 相连接的开发环境 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 Arduino的版本:Arduin ...