angular 自定义指令 directive transclude 理解

时间:2023-03-08 16:30:44

项目中断断续续的用了下angular,也没狠下心 认真的学习。angular 特别是自定义指令这块 空白。

transclude 定义是否将当前元素的内容转移到模板中。看解释有点抽象。

看解释有点抽象Demo:

<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="UTF-8">
<title>Angularjs</title>
<script src="http://libs.useso.com/js/angular.js/1.2.5/angular.min.js"></script>
</head>
<body>
<say-hello>美女</say-hello>
<script>
var app = angular.module('myApp', []); app.directive('sayHello', function() {
return {
restrict: 'E',
template: '<div>hello,<b ng-transclude></b><b ng-transclude></b></div>',
replace: true,
transclude: true
};
});
</script>
</body>
</html>

运行结果。angular 自定义指令 directive  transclude 理解

sayHello 标签之间 的文字 将会移动到 template里面的<b>标签中 理解成占位符。也可以叫乾坤大挪移。 这个还是很有用的,因为你定义的指令不可能老是那么简单,只有一个空标签。当你需要对指令中的内容进行处理时,此参数便大有可用。

参考:http://www.cnblogs.com/lvdabao/p/3391634.html