angular组件开发
项目中经常会有一些公共组件,比如header,如果每个页面都写一遍的话显得很冗余,而且不利于维护,这时候我们就会考虑将这些公共部分抽取出来,做成一个单独的组件。
然而angular不是很熟悉啊~怎么啵~
折腾了一下,才发现angular的组件开发主要依赖自定义指令(directive )来实现。
主要使用到directive的几个属性,如下:
restrict: 使用驼峰法来命名,用来限制指令通过特定的方式来调用,默认值为 EA
E 作为元素名使用,如<my-directive></my-directive>
A 作为属性使用,如<div my-directive></div>
C 作为类名使用,如<div class="my-directive"></div>
M 作为注释使用,如<!-- directive: my-directive -->
scope: 指定作用域
false 默认值,共享父级作用域
true 继承父级作用域并创建指令自己的作用域
{} 创建指令自己的独立作用域,与父级毫无关系
templateUrl: 用来指定模板文件的url,如templateUrl: 'header'
template:设置模板,如template:'这是一条指令'
controller:控制器
比如如果创建一个header组件,我们先新建一个文件夹header.html
<header>
<h1>这里是标题</h1>
<div class="goback" ng-touchstart="goBack($event)">返回</div>
<div>这里是右边的文字</div>
</header>
接着新建directive.js
angular.module('myHeader', ["zz.rule"])
.directive('myHeader', function() {
return {
restrict: 'A',
templateUrl: 'header',
controller: function($scope, $element, $attrs) {
// 返回上一页
$scope.goBack = function(event) {};
}
};
})
好了,到这里一个组件就穿件好了,那么问题来了,怎么使用呢?
其实就跟平成引入插件一样一样的
创建index.html
<div zz-header></div>
angular.module('mymodel', ["myHeader"])
超级简单有没有,赶紧get起来
angular组件开发的更多相关文章
- 饿了么基于Vue2.0的通用组件开发之路(分享会记录)
Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...
- Angular组件——父子组件通讯
Angular组件间通讯 组件树,1号是根组件AppComponent. 组件之间松耦合,组件之间知道的越少越好. 组件4里面点击按钮,触发组件5的初始化逻辑. 传统做法:在按钮4的点击事件里调用组件 ...
- chart.js angular组件封装(ng6)、实战配置、插件编写
前言 项目需要使用chart.js插件,由于项目是使用angular开发,那么我第一步就是先把chart.js改造成angular组件来使用. 本项目代码都可以在github上下载:项目git地址 a ...
- [转]使用 Angular CLI 和 ng-packagr 构建一个标准的 Angular 组件库
使用 Angular CLI 构建 Angular 应用程序是最方便的方式之一. 项目目标 现在,我们一起创建一个简单的组件库. 首先,我们需要创建一个 header 组件.这没什么特别的,当然接下来 ...
- angular1.x 组件开发
搜索框组件开发: 1.注册组件 app.js angular.module("myApp",[]) .component("nameSearch",{ temp ...
- 安装Angular CLI开发工具
目前,无论你使用什么前端框架,都必然要用到NodeJS工具,Angular也不例外,与其他框架不同的是,Angular一开始就使用"全家桶"式的设计思路,因此@angular/cl ...
- 手把手教你搭建自己的Angular组件库 - DevUI
摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...
- React-Native 组件开发方法
前言 React Native的开发思路是通过组合各种组件来组织整个App,在大部分情况下通过组合View.Image等几个基础的组件,可以非常方便的实现各种复杂的跨平台组件,不过在需要原生功能支持. ...
- 基于vue的新组件开发
前天完成了一个新组件的开发,做的过程也是各种遇到问题,彻底弄懂了slot,巩固了一些flex布局和jquery的知识,比起自己第一次做组件开发,现在已经是能够下手做,遇到问题解决问题,还算有进步. 但 ...
随机推荐
- urllib-访问网页的两种方式:GET与POST
学习自:https://www.jianshu.com/p/4c3e228940c8 使用参数.关键字访问服务器 访问网络的两种方法: 1.GET 利用参数给服务器传递信息 参数data为dict类型 ...
- JQuery常见方法
<!DOCTYPE htmi> <html> <head> <meta charset="UTF-8"> <title> ...
- Liunxa安装Nignx,Git
Linux安装Nignx 1.安装依赖 执行语句 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel open ...
- 01-SpringCloud介绍
简介 Spring Cloud provides tools for developers to quickly build some of the common patterns in distri ...
- java上传图片时压缩图片
/** * 函数:调整图片尺寸或生成缩略图 v 1.1 * @param $Image 需要调整的图片(含路径) * @param $Dw 调整时最大宽度;缩略图时的绝对宽度 * @param $Dh ...
- laravel7 微信小程序获取openid
l 通过微信公众号获取appid和appsecret l 在小程序页面中编写代码获取code l 在后端编写方法,换取openid l 添加一个按钮,给按钮一个开放能力 open-type=" ...
- Laravel-AJAX-分页
public function show(Request $request){ $posts = DB::table('posts') ->join('cate','posts.cate_id' ...
- Kubernetes系列(五) Ingress
作者: LemonNan 原文地址: https://juejin.im/post/6878269825639317517 Kubernetes 系列 Kubernetes系列(一) Pod Kube ...
- Docker安装与基本命令
docker安装 Ubuntu 更新apt包索引 sudo apt-get update 更新apt包索引 sudo apt-get upgrade 安装docker sudo apt-get ins ...
- mysql索引失效原理(联合索引失效问题)
单值索引B+树图单值索引在B+树的结构里,一个节点只存一个键值对 联合索引开局一张图,由数据库的a字段和b字段组成一个联合索引. 从本质上来说,联合索引也是一个B+树,和单值索引不同的是,联合索引的键 ...