AngularJs(Part 7)--Build-in Directives
Directives
In AngularJS, we can use a variety of naming conventions to reference directives .
In the AngularJS documentation, all the directive are indexed under their camel-case name
(For example, ngModel). In a template, howeven, we need to use either snake-case form(ng-model),
colon-separated(ng:model) or the underscore-separated(ng_model) form. Addtionally, each reference to
a directive can be prefixed with either x- or data-.
the interpolation directive--- {{}}
and it has an equivalent directive called ng-bind. Usually the ng-bind directive is used to hide
expressions before AngularJS has a chance of processing them on the initial page load.
the interpolation directive will do escaping of any HTML content found in the model in order to prevent
HTML injection attacks. for example :
$scope.msg="hello,<b>world</b>";
and the markup fragment:
<span>{{msg}}</span>
the result will be <span>hello,<b>world</b></span>
if,for any reason, you model contains HTML markup that needs to be evaluated and rendered by a browser,
you can use the ng-bind-html-unsafe directive to switch off default HTML tags escaping.
<span ng-bind-html-unsafe="msg"></span>
but, there is also a third option: ng-bind-html. this directive is a compromise between behavior of the
ng-bind-html-unsafe(allow al HTML tags) and the interpolation directive(allow no HTML tags at all).you can
use ng-bind-html where you want to allow some HTML tags.
ng-bind-html directive resides in a separate module (ngSanitize) and require inclusion of an addtional
source file:angular-sanitize.js.
Don't forget to declare dependency on the ngSanitize module if you plan to use the ng-bind-html directive.
Conditional display
Showing and hiding parts of the DOM based on some conditions is a common requirement.
AngularJS is equipped with four different sets of directive fot this occasion(ng-show/ng-hide,
ng-switch-*,ng-if and ng-include)
ng-show/ng-hide
<div ng-show="showSecret"></div>
this div will show when showSecret is true and hide when showSecret is false.
ng-switch-*
If we want to physically remove or add DOM nodes conditionally , the family of ng-switch directives will come
handy:
<div ng-switch on="showSecret">
<div ng-switch-when="1">Secret1</div>
<div ng-switch-when="2">Secret2</div>
<div ng-switch-default>won't show my secrets!</div>
</div>
ng-if
Just like other if in other languages,
<div ng-if="showSecret">Secret</div>
ng-include
The ng-include directive can be used to conditionally display blocks of dynamic, AngularJS-powered markup.
<div ng-include="user.admin && 'edit.admin.html' || 'editor.user.html'"></div>
ng-include accepts an string as its argument. so it must be something like ng-include=" 'a.html' "
ng-repeat
$index starts with 0
$first, $middle,$last return a boolean
using ng-repeat , we can iterate over properties of an object. check the following code:
<li ng-repeat="(name,age) in user">
<span>{{name}} 's age is {{age}}</span>
</li>
but in this case, we can't control iteration order.
There is a slight problem with ng-repeat directive: it need a container element to repeat. For example, if I
want to repeat two rows in a table, it must be
<table>
<tbody ng-repeat="user in users">
<tr>{{user.name}}</tr>
<tr>{{user.age}}</tr>
</tbody>
</table>
AngularJs(Part 7)--Build-in Directives的更多相关文章
- [译]在AngularJS中何时应该使用Directives,Controllers或者Service
原文: http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/ Services Servic ...
- [AngularJS] Using Services in Angular Directives
Directives have dependencies too, and you can use dependency injection to provide services for your ...
- [AngularJS] Using ngModel in Custom Directives
You can use ngModel in your own directives, but there are a few things you'll need to do to get it w ...
- 【转】Build Your own Simplified AngularJS in 200 Lines of JavaScript
原文:http://blog.mgechev.com/2015/03/09/build-learn-your-own-light-lightweight-angularjs/ Build Your o ...
- A Step-by-Step Guide to Your First AngularJS App
What is AngularJS? AngularJS is a JavaScript MVC framework developed by Google that lets you build w ...
- Integrating AngularJS with RequireJS
Integrating AngularJS with RequireJS When I first started developing with AngularJS keeping my contr ...
- [后端人员耍前端系列]AngularJs篇:使用AngularJs打造一个简易权限系统
一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJS来打造一个简易的权限管理系统.下面不多 ...
- angularjs指令中的compile与link函数详解(转)
http://www.jb51.net/article/58229.htm 通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link, ...
- AngularJs打造一个简易权限系统
AngularJs打造一个简易权限系统 一.引言 上一篇博文已经向大家介绍了AngularJS核心的一些知识点,在这篇博文将介绍如何把AngularJs应用到实际项目中.本篇博文将使用AngularJ ...
- 【转】angularjs指令中的compile与link函数详解
这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在 ...
随机推荐
- 简介windows的环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等.这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路 ...
- 算法(Algorithms)第4版 练习 2.2.9
package com.qiusongde; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; publi ...
- MapReduce修改输出的文件名
MapReduce默认输出的文件名称格式如下:part-r-00000 自定义名称,比如editName,则输出的文件名称为:editName-r-0000,此方法没有彻底修改整个文件名,只修改了一部 ...
- 关于spring事务注解
关于事务的注解常用如下1.如果有事务, 那么加入事务, 没有的话新建一个(默认情况下),也就是当我们要开启事务的时候才用,即有数据库有增删改操作@Transactional(rollbackFor=E ...
- Oracle创建函数
--创建函数语法 create [or replace] function [schema.]function_name (函数参数列表) --参数有IN.OUT.IN OUT三种类型:IN代表需要输 ...
- 用 CSS3 创建一个漂亮的多种色彩的菜单
1. [图片] thumb.png 2. [代码][HTML]代码 <!DOCTYPE html><html lang="en" > <hea ...
- NET 平台下的WebService 简单使用
一句话理解:提供可供外部访问的方法,实现跨平台访问 注意: 在客户端是添加“服务引用”,而不是引用 当服务端更新了服务之后,在客户端,一定也要“更新服务” 当要执行异常调用时,要在前台.aspx的头部 ...
- C#winform拖拽实现获得文件路径
1.关键知识点说明: 通过DragEnter事件获得被拖入窗口的“信息”(可以是若干文件,一些文字等等),在DragDrop事件中对“信息”进行解析.窗体的AllowDrop属性必须设置成true;且 ...
- codeforces 622A A. Infinite Sequence (二分)
A. Infinite Sequence time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Struts2 - 通过实现 Aware 接口访问 Web 资源
Action 类通过可以实现某些特定的接口, 让 Struts2 框架在运行时向 Action 实例注入 parameters, request, session 和 application 对应的 ...