【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)
bootstrap有强大的指令系统,可以自定义一些属性,基本知识请移步:http://angularjs.cn/A00r http://www.cnblogs.com/lvdabao/p/3391634.html
我参考这两篇文章所述,封装了bootstrap的alert和panel控件,现将代码简单的贴出来。
注:目前我对ng了解非常浅,没有关注细节,实现功能第一位,我觉得比较合适的学习路线是,先用起来,在用的过程中不断深入。
第一步:注册module
angular.module('app.directives', [])
第二步:定义指令
1.alert的封装,这个是最简单的了,只是div上面多了两个class而已
angular.module('app.directives', [])
.directive('successtip', function () {
return {
restrict: 'E',
template: '<div class="alert alert-success" role="alert" ng-transclude></div>',
replace: true,
transclude: true
}
})
2.panel的封装,特点:多层标签嵌套
特别注意的点是:ng-transclude,这个写到哪里,完了之后,你的标签中的内容就会填充在那个节点下面,比如panelheader的定义,用户将来使用时
<panelheader>content</panelheader>,这里的content会填充到h3下面,而不是div下面.
.directive('panel', function () {
return {
restrict: 'E',
template: '<div class="panel panel-danger" ng-transclude></div>',
replace: true,
transclude: true
}
})
.directive('panelheader', function () {
return {
restrict: 'E',
template: '<div class="panel-heading"><h3 class="panel-title" ng-transclude></h3></div>',
replace: true,
transclude: true
}
})
.directive('panelbody', function () {
return {
restrict: 'E',
template: ' <div class="panel-body" ng-transclude></div>',
replace: true,
transclude: true
}
});
如果你的模板比较复杂,不适合用一个string来写,那你可以用html模板来放置,只是在directive方法中,你就不能写template了,而是要写templateurl,路径是你定义的html模板的路径。
第三步:使用
这个时候,使用起来就不需要记那些繁琐的css和div的层级结构了,只需要记住标签的层级结构就好,这样子我个人的感觉是有点面向对象编程的意思了,比较容易理解和记忆。
1.alert的使用
<successtip>登录成功</successtip>
显示效果:

2.panel的使用
<panel>
<panelheader> panel healer</panelheader>
<panelbody>panel Body</panelbody>
</panel>
显示效果:

对于一些复杂的控件,这个封装就会大大减少开发工作量,我这个目前还是有问题的,我现在是每个颜色都需要封装一次,我觉得是会有办法在上面加个属性能让他们显示为不同颜色的。待续...
【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)的更多相关文章
- C# 学习笔记 三层架构系列(控件一)
下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...
- Android学习笔记(七)——常见控件
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 给我们提供了大量的 UI控件,下面我们简单试试几种常用的控件. 一.TextView 在布局文 ...
- .net core 学习笔记(1)-分页控件的使用
最近有个小项目,用.net core开发练练手,碰到的第一个问题就是分页控件的问题,自己写太费时间,上网查了下,发现有人已经封装好了的,就拿过来用了,分页控件github:https://github ...
- Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...
- Swift学习之函数和简单地控件的创建
今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的 ...
- Android学习笔记50:使用WebView控件浏览网页
在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在 ...
- 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.10.Button 和 Autocomplete控件
Button ,可以使用 <button> <input> <a>. <input> 中的不同类型,submit , radio , checkbox ...
- Excel开发学习笔记:界面交互与控件的布局
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. , ).value ...
- Tornadofx学习笔记(2)——FxRecyclerView控件的打造
Tornadofx是基于javafx的一个kotlin框架,用来写些电脑版的小程序 基于Scroll Pane控件,仿造Android中的RecyclerView,实现的一款tornadofx的控件 ...
随机推荐
- zookeeper【2】集群管理
Zookeeper 的核心是广播,这个机制保证了各个Server之间的同步.实现这个机制的协议叫做Zab协议. Zab协议有两种模式,它们分别是恢复模式(选主)和广播 模式(同步).当服务启动或者在领 ...
- linux系统下部署项目
一.修改防火墙设置,开放对应的端口 修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条 -A RH-Firewall- ...
- mybatis笔记<二> 整合spring
mybatis与spring整合需要添加几个jar包,mybatis-spring, spring-context, spring-jdbc 1. spring ioc只要一个jar包就ok 2. 我 ...
- lintcode 题目记录2
判断字符串是否是互为置换,类似 替换字符串之类的遍历就行了.. class Solution: # @param {string} A a string # @param {string} B a s ...
- jsp实现html页面静态化
一.实现原因 1.网站访问量过大,导致服务器压力加大以及数据库数据交换频繁.生成静态页面提供访问以缓解压力. 2.静态页面是动态页面的备份,若动态页面出现异常,静态页面可以暂时替代. 二.使用场合 ...
- 关于display:inline-block布局导致错位问题分析
移动端设计稿需求是这样的,如下图: 未知的几个头像从左至右并行居中排列. 一般可能直接使用float,但是设计图要求头像排列始终是居中的,于是想到要让它们成为行内元素,然后可使用的方法有flex bo ...
- mockjs
首先还是那句话,进来的GodBoy and GoodGirl 不妨看完再离开. 一个走在路上的前端攻城狮-along 一.mock的由来 mock有“愚弄.欺骗”之意,在前端领域,mock可以理解为 ...
- Visual Studio扩展与更新中插件被禁用,安装后无法使用
在Visual Studio中的扩展与更新中安装插件后,显示[禁用],重新安装后仍然不能使用,但是VS默认安装的扩展却可以正常使用. 这里需要注意下方显示“当前不允许加载每用户扩展”,点击“启用每用户 ...
- CentOS 7运维管理笔记(5)----源代码安装Apache 2.4,搭建LAMP服务器
########################## 2016-07-07-Thu--20:34 补充 ##################### 编译安装OpenSSL笔记: 如果系统要使用 ...
- makefile 模板 (template)
本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile. 这些makefile都很简单,一般都是一看就会用,用法也很容 ...