angular自定义指令-1

1、angular指令感觉就相当于写一个组件,扩展html的语法,比如你写了一个图片上产的组件input-image,引用的时候直接用指令引

<input-image ng-model="image_url"></input-image>

用就好

2、如何写angular指令,主要就是调用directive方法api,方法内返回一个包装特定属性对象

3、angular指令开始compile结束link

4、从外部像指令传递数据,有叫绑定策略,传递数据的主要有两种

@绑定和=绑定

区别:

1、@绑定从外部传递到内部,内部改变不会反映到外部,=绑定是双向的,任何一方的改变都会相互影响

2、@绑定是通过angular表达式{{ }}方式传递eg:<my-dir title="{{title}}"></my-dir>,=绑定传递值不需要表达式eg:<my-dir title="title"></my-dir>

下面写个简单的demo说明,

模板sometest.html

<div class="p_text">
	<p>
   		 <label>title:{{title}}</label><input type="text" ng-model="title">
	</p>
	<p>
	    <label>text:{{text}}</label><input type="text" ng-model="text">
	</p>
	<button  ng-click="alertTest()">点击test </button>{{alertTest}}===
</div>

指令定义:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="angular.js"></script>
	<style type="text/css">
		.p_text{
			border: solid 1px red;
		}
	</style>
</head>
	<div ng-controller="testController">
		<input type="text" ng-model="title" placeholder="expr...">
		title:{{ title }}<br/>
		<input type="text" ng-model="text" placeholder="text">
		text:{{text}}<br/>
		<input-test title="{{title}}" text="text" ng-click ="alertTest()"></input-test>
	</div>
	<script type="text/javascript">
		angular.element(document).ready(function  () {
			var myApp = angular.module(‘myApp‘,[],angular.noop);
			myApp.directive(‘inputTest‘,function  () {
					return {
				   	    compile: angular.noop,
			            templateUrl:"sometest.html",
			            replace: false,
			            scope: {
			            	alertTest:‘&alertFun‘,
			                title:‘@title‘ , //directive里面的title取值为element属性titlearr的动态的值{{title}} --注意外部传递值的方式与 = 的不同{{}}
			                text:‘=text‘//directive里面text的取值为element属性textarr的值text在element中scope中的值,scope.text --注意外部的传递值的方式与@的不同 ""
			            },//这里的=title其实用的是
			            restrict: ‘AE‘
			        };
			}).controller(‘testController‘,function  ($scope,$parse) {
				$scope.say = "hello worlds!";
				$scope.title = "外部title";
				$scope.text = "外部text";
				$scope.num = 1;
				$scope.alertTest = function  () {
					++$scope.num;
					alert($scope.num);
				}

			});
			angular.bootstrap(document, [‘myApp‘]);
		})

	</script>
</body>
</html>

  下一篇如何使用link和compile定义指令

时间: 2024-10-12 11:31:42

angular自定义指令-1的相关文章

Angular自定义指令(directive)

angular自定义指令,意我们可以通过angula自己定义指令,来实现我们的特殊要求,为所欲为,一支穿云箭,千军万马来相见 多少年的老规矩了,先看代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content=&quo

angular 自定义指令详解 Directive

在angular中,Directive,自定义指令的学习,可以更好的理解angular指令的原理,当angular的指令不能满足你的需求的时候,嘿嘿,你就可以来看看这篇文章,自定义自己的指令,可以满足你的各种需求的指令. 本篇文章的参考来自  AngularJS权威指南 , 文章中主要介绍指令定义的选项配置 废话不多说,下面就直接上代码 //angular指令的定义,myDirective ,使用驼峰命名法 angular.module('myApp', []) .directive('myDi

angular自定义指令命名的那个坑

Directive 先从定义一个简单的指令开始. 定义一个指令本质上是在HTML中通过元素.属性.类或注释来添加功能.AngularJS的内置指令都是以ng开头,如果想自定义指令,建议自定义一个前缀代表自己的命名空间.这里我们先使用my作为前缀: var myApp = angular.module('myApp', []) .directive('myDirective', function() { return { restrict: 'A', replace: true, template

angular 自定义指令 详解--restrict、restrict、replace

Angularjs 允许根据实际业务需要自定义指令, 通过angular全局对象下的 directive 方法实现.可以自定义属性.自定义标签.自定义功能 接下来定义一个名叫custom的指令,并利用这个自定义指令来实现元素的替换 html代码: <body ng-app="app"> <p custom></p> <custom></custom> js代码: var app = angular.module("a

angular 自定义指令 directive transclude 理解

项目中断断续续的用了下angular,也没狠下心 认真的学习.angular 特别是自定义指令这块 空白. transclude 定义是否将当前元素的内容转移到模板中.看解释有点抽象. 看解释有点抽象Demo: <!DOCTYPE html> <html lang="en" ng-app='myApp'> <head> <meta charset="UTF-8"> <title>Angularjs</

angular自定义指令scope属性学习笔记

指令在angular项目中的应用非常频繁,当它自带的指令不能满足我们的需求时,我们就需要自定义指令: 在angular,作用域是一个很重要的概念.同样的,要定义一个指令,我们也需要设置他的sope: angular为自定义指令提供了三种scope:①不创建独立的作用域,直接使用父作用域(false):②创建一个继承自它的父级作用域的独立作用域(true):③创建一个完全与外部隔离的作用域({}):

Angular17 Angular自定义指令

1 什么是HTML HTML文档就是一个纯文本文件,该文件包含了HTML元素.CSS样式以及JavaScript代码:HTML元素是由标签呈现,浏览器会为每个标签创建带有属性的DOM对象,浏览器通过渲染这些DOM节点来呈现内容,用户在浏览器中看到的内容就是浏览器渲染DOM对象后的结果. 2 指令的分类 组件.属性指令.结构性指令 具体的知识点请参见<Angular2揭秘> 3 指定义指令常用到的一些常量 3.1 Directive 用于装饰控制器类来指明该控制器类是一个自定义指令控制器类 3.

angular自定义指令在指令里面调用父作用域里面的方法传参

使用自定义指令的时候在指令里面调用父作用域里面的方法,在指令里面 在父作用域里面的模板里面使用指令 在控制器里面

angular自定义指令-directive

Directive究竟是个怎么样的一个东西呢?我个人的理解是这样的:将一段html.js封装在一起,形成一个可复用的独立个体,具体特定的功能.下面我们来详细解读一下Directive的一般性用法. var myDirective = angular.module('directives', []); myDirective.directive('directiveName', function($inject) { return { template: '<div></div>',

angular自定义指令基础

你可以向模块注册一个指令,像这样: <!-- lang: js --> myapp = angular.module("myapp", []); myapp.directive('div', function() { var directive = {}; directive.restrict = 'E'; /* restrict this directive to elements */ directive.template = "My first direct