AngularJS--自定义指令和模板
一、自定义指令:
1. 先创建模块 var app=angular.module("myApp",[]);
2. 创建自定义指令 (directive后面的参数一:自定义指令的名称,参数二:function 返回值是一个对象 template是模板)
app.directive("shen",function(){
return {
template:"<h1>这是自定义属性</h1>"
}
})
3.划定模块范围,使用自定义指令
<body ng-app="myApp">
<shen></shen>
二、模板--引入外部文件
上面是模板最基本的使用方式,模板还可以引用外部文件,当模板的内容稍大一点的时候,引用外部文件更好
定义一个模板文件,最好是把作为模板的文件统一放在template文件夹下。模板文件不需要html、body等标签,直接写你需要的模板标签即可
此时自定义指令中的template换成templateUrl,后面写模板文件的相对路径,其他不变
三、在script标签中写模板
新建一个script标签,这个标签必须有id,和type,id随便取名字,type为固定写法 type="text/ng-template"。
在这个script标签中写模板,写法和一般标签写法一样。
此时自定义指令中templateUrl对应的值为 script标签的id名
四、自定义指令的不同实现方式
以上方法中自定义指令都是以标签的形式实现的,其实自定义指令还可以用属性和类名的形式实现
当以类名形式编写时,还必须在定义指令时添加restrict属性 (使用属性和标签的方式时不写也可正常显示)
restrict是“限制”的意思,属性值可以为E(element),A(attribute),C(class),当你希望实现方式只能是标签时,可以写restrict:“E”,restrict:“EAC”表示三种方式都可以,以此类推。
五、自定义模板内容
上面的模板内容都是固定的,实际开发中模板的内容都是由项目需要而生成的,如何让每一个模板的内容不一样呢? 使用 transclude
1. 在模板中的标签里添加 ng-transclude,(如果你需要某个标签里的内容自定义就添加ng-transclude属性,如果希望是固定的值就不需要加)
2. 添加属性 transclude:true
2. 在实现自定义指令时,把自定义的内容写在指令标签的里面即可
AngularJS--自定义指令和模板的更多相关文章
- 浅析AngularJS自定义指令之嵌入(transclude)
AngularJS自定义指令的嵌入功能与vue的插槽十分类似,都可以实现一些自定义内容展现.在开始之前先简单介绍下自定义指令的transclude属性和AngularJS的内置指令ng-transcl ...
- AngularJs自定义指令详解(1) - restrict
下面所有例子都使用angular-1.3.16.下载地址:http://cdn.bootcss.com/angular.js/1.3.16/angular.min.js 既然AngularJs快要发布 ...
- AngularJS: 自定义指令与控制器数据交互
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- angularjs自定义指令Directive
今天学习angularjs自定义指令Directive.Directive是一个非常棒的功能.可以实现我们自义的的功能方法. 下面的例子是演示用户在文本框输入的帐号是否为管理员的帐号"Adm ...
- angularJs 自定义指令传值---父级与子级之间的通信
angularJs自定义指令用法我忽略,之前有写过,这里只说一下父子级之间如何传值: 例如: 模块我定义为myApp,index.html定义 <my-html bol-val="bo ...
- angularJS自定义指令模板替换
<html> <head> <meta charset="utf-8"/> <title></title> </h ...
- angularJS 使用自定义指令输出模板
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- angularJS——自定义指令
主要介绍指令定义的选项配置 //angular指令的定义,myDirective ,使用驼峰命名法 angular.module('myApp', []) .directive('myDirectiv ...
- 利用angularJs自定义指令(directive)实现在页面某一部分内滑块随着滚动条上下滑动
最近老大让我一个效果实现在页面某一部分内滑块随着滚动条上下滑动,说明一下我们项目使用技术angularJs.大家都知道,使用jquery很好实现. 那么angular如何实现呢,我用的是自定义指令(d ...
- AngularJS自定义指令directive:scope属性 (转载)
原文地址:http://blog.csdn.net/VitaLemon__/article/details/52213103 一.介绍: 在AngularJS中,除了内置指令如ng-click等,我们 ...
随机推荐
- Memcached 服务器端命令
memcached的基本命令(安装.卸载.启动.配置相关): -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重 ...
- 二维码生成Zxing.net DEMO
Zxing.net是google维护的一个开源项目.用于在.net平台上生成二维码等,当然还有更多其他用途. 用nuget安装命令 install-package zxing.net 然后添加命名空间 ...
- jsonp 跨域请求
背景: JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源 ...
- SVN随记
SVN中提交代码时报如下错误 commit -m "sync" E:/resource/rad_workspace/IMSCrawl/src/configuration.prope ...
- 分布式服务框架dubbo原理解析(转)
libaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo.hsf),jms消息服务(napoli.notify),KV数据库(tair)等.这个框架/工具/产品 ...
- EL表达式不解析
使用EL表达式时,遇到了页面直接显示"time: ${requestScope.time}",不解析的情况.查找资料原因是:在默认情况下,Servlet 2.3 / JSP 1.2 ...
- 利用chorme调试手机网页
太方便了,很实用的技巧(特意记录一下) 1.pc端安装最新的chrome 2.手机端安装最新的chrome ( Android机 ) 3.USB连接线 4.打开电脑的chrome 在地址栏输入 chr ...
- 业务中是否有必要让所有的ViewController统一继承抽象类
疑问来自:这里 1.事出有因 其中博主说道的情况我其实也经历过,当时还在找到一个模式可以改变这样的情况.直到有一天看到这个博客,今天晚上有时间来规整一下博主的思路和写了一个测试代码. 这是我目前的Ap ...
- Windows操作系统待整理
12. 2001年10月25日Windows XP发布,Windows XP是基于Windows 2000代码的产品,同时拥有一个新的用户图形界面(叫做月神Luna),它包括了一些细微的修改.集成了防 ...
- Fedora 23安装 NS2 (network simulator 2)
1 实验环境 OS: Fedora 23 workstation 2 实验步骤 ( 参考了:http://www.isi.edu/nsnam/ns/ns-build.html) 本次实验的实验环境: ...