angularJS1笔记-(12)-自定义指令(compile/link)
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div ng-app="myApp">
<div ng-controller="firstController">
<div ng-repeat="user in users" custom-tags><a href="www.baidu.com">baidu</a></div>
</div>
</div>
<script type="text/javascript" src="../../vendor/angular/angularJs.js"></script>
<script type="text/javascript" src="app/index.js"></script>
<script>
</script>
</body>
</html>
index.js:
var myApp = angular.module(myApp, [])
.directive(customTags,function () {
return{
restrict:"ECAM",
template:"<div>aaa<span ng-transclude></span></div>",
replace:true,
transclude:true,
compile:function (tElement,tAttrs,transclude) {
console.log(tElement);
console.log(tAttrs);
console.log(customTags compile);
console.log("你好,我是编译阶段的方法"); //在编译阶段只执行一次
return function () {
console.log(compile return function)
}
}
}
})
.controller(firstController,[$scope,function ($scope) {
$scope.users = [
{
id:10,
name:张三
},
{
id:20,
name:李四
}
];
}]); var myApp = angular.module(myApp, []) .directive(customTags,function () { return{ restrict:"ECAM", template:"
aaa
", replace:true, transclude:true, compile:function (tElement,tAttrs,transclude) { console.log(tElement); console.log(tAttrs); console.log(customTags compile); console.log("你好,我是编译阶段的方法"); //在编译阶段只执行一次 return function () { console.log(compile return function) } } } }) .controller(firstController,[$scope,function ($scope) { $scope.users = [ { id:10, name:张三 }, { id:20, name:李四 } ]; }]);
运行结果:
index.html: index.js: var myApp = angular.module(myApp, []) .directive(customTags,function () { return{ restrict:"ECAM", template:"
aaa
", replace:true, transclude:true, compile:function (tElement,tAttrs,transclude) { console.log(tElement); console.log(tAttrs); console.log(customTags compile); console.log("你好,我是编译阶段的方法"); //在编译阶段只执行一次 return function () { console.log(compile return function) } } } }) .controller(firstController,[$scope,function ($scope) { $scope.users = [ { id:10, name:张三 }, { id:20, name:李四 } ]; }]); 运行结果:
