https://stackoverflow.com/questions/38812824
I read document from AngualrJS : https://docs.angularjs.org/guide/component
And when I am reading to "Example of a component tree" section, I got confused about how a component tree's loading works, because there is nowhere to find the loading order.
How angular find the root directive and nested directive (may be in a template)? and Which component should start work first? I mean, If a nested component() is called earlier than its directive's appearance, will it be called later when its directive appears? How angular knows the appropriate component to call when a directive/template load? Or just iterate all components method? Or load all components first, then according index.html to form a component hierarchy, then call it properly?
Is there anybody kindly explain? thanks a lot!
Thanks estus!, your anwser is really helpful! According to
AngularJS : How does the HTML compiler arrange the order for compiling?
https://stackoverflow.com/a/15044832/2893073
and Pete Bacon Darwin's example :
And this comes from :
How directives are compiled
https://docs.angularjs.org/guide/compiler#how-directives-are-compiled
exmaple:
// app.js
angular.module('compilation', [])
.directive('logCompile', function($rootScope) {
$rootScope.log = "";
return {
controller: function($scope, $attrs) {
$rootScope.log = $rootScope.log + ($attrs.logCompile + ' (controller)\n');
},
compile: function compile(element, attributes) {
$rootScope.log = $rootScope.log + (attributes.logCompile + ' (compile)\n');
return {
pre: function preLink(scope, element, attributes) {
$rootScope.log = $rootScope.log + (attributes.logCompile + ' (pre-link)\n');
},
post: function postLink(scope, element, attributes) {
element.prepend(attributes.logCompile);
$rootScope.log = $rootScope.log + (attributes.logCompile + ' (post-link)\n');
}
};
}
};
})
.directive('terminate', function() {
return {
terminal: true
};
});
index.html
<!doctype html>
<html ng-app="compilation">
<head>
<meta charset="utf-8">
<title>Compilation Demo</title>
<link rel="stylesheet" href="style.css">
<script src="http://code.angularjs.org/1.1.1/angular.js"></script>
<script src="app.js"></script>
</head>
<body>
<div log-compile="parent">
<div log-compile="..child 1">
<div log-compile="....child 1 a"></div>
<div log-compile="....child 1 b"></div>
</div>
<div log-compile="..child 2">
<div log-compile="....child 2 a"></div>
<div log-compile="....child 2 b"></div>
</div>
</div>
<!-- LOG -->
<pre>{{log}}</pre>
</body>
</html>
style.css
div {
padding: 5px;
margin: 5px;
background-color: #EEE;
border: 1px solid #BBB;
}
div > div {
background-color: #DDD;
}
div > div > div {
background-color: #CCC;
}
ol {
list-style: decimal;
margin-left: 30px;
}
-
- 大小: 213.6 KB
- 大小: 117.8 KB
分享到:
相关推荐
Directive是AngularJS的最小指令性组件,它可以通过添加属性、元素、注释、或者类来改变DOM元素的行为。通过使用Directive,我们可以创建可重用的、可定制的、封装好的代码块。 接下来,文章中提到了创建一个表格的...
主要介绍了AngularJS中directive指令使用之事件绑定与指令交互用法,结合实例形式分析了directive指令在模板的使用,事件的绑定及元素、属性、控制器之间的交互相关操作技巧,需要的朋友可以参考下
在AngularJS中,自定义指令(Directives)是框架的核心特性之一,允许开发者扩展HTML语法,创建可重用的UI组件或行为。本教程将深入探讨如何利用AngularJS的自定义指令来实现正则表达式的校验功能,特别是针对HTTP...
在学习AngularJS这个流行的前端JavaScript框架时,指令是必须掌握的核心概念之一。AngularJS中的指令允许开发者定义新的HTML标记,并且注入自定义的行为。本文将全面解析AngularJS中的指令,帮助读者理解其在框架中...
1. **定义指令**:在AngularJS应用中,使用`angular.module.directive()`来定义一个新的指令。例如: ```javascript angular.module('myApp').directive('customDropdown', function() { return { restrict: 'E'...
它们是AngularJS的核心组成部分,通过指令,开发者可以将业务逻辑与视图层紧密结合,实现数据双向绑定、动态渲染等功能。 **1. 指令的基本结构** AngularJS中的指令通常以`ng-`开头,如`ng-repeat`、`ng-click`等...
主要介绍了Angularjs使用directive自定义指令实现attribute继承的方法,结合实例形式较为详细的分析了基于directive自定义指令实现attribute继承的具体步骤与相关技巧,需要的朋友可以参考下
1. **定义指令**:使用`.directive()`方法定义一个新的指令,这个方法接受两个参数:指令的名称(作为字符串)和一个指令定义对象。 2. **指令的链接函数**:定义一个链接函数,这是指令的入口点。链接函数负责将...
在AngularJS中,自定义指令(Directives)是框架的核心特性之一,允许开发者扩展HTML语法,创建可重用的UI组件或行为。本教程将详细讲解如何创建一个自定义正则表达式校验指令,以实现对用户输入的http链接和纯数字...
在本文中,我们将深入探讨如何使用AngularJS的`directive`特性来实现在移动设备上自定义软键盘。AngularJS是一个强大的前端JavaScript框架,它通过`directives`提供了一种方式来扩展HTML,使得我们可以创建自定义的...
在本文中,我们将深入探讨如何在AngularJS框架中创建自定义指令来封装ECharts 2的雷达图。ECharts是一款由百度开发的开源JavaScript图表库,它提供了丰富的可视化图表类型,包括雷达图。AngularJS是一个强大的前端...
# AngularJS指令/控制器作为组件示例演示Web应用程序,用于显示 , , 集成需要本地Web服务器要正确运行Web应用程序,您需要具有本地Web服务器。 请参阅Git仓库的基本用法要获取母版的本地副本,请执行以下操作: ...
CanvasJS-AngularJS指令 AngularJS的CanvasJS指令 需要库 安装 将chart.js文件放入您的项目目录 确保此文件包含在HTML标头中 编辑文件chart.js并将angular.module('your-module-here')更改为模块的名称 如下所述调用...
自定义指令(Directive)是AngularJS框架中非常强大的特性之一,它允许开发者创建自己的HTML标签,属性,类或注释,从而定义新的HTML标记,使其具有特定的行为和样式。 在AngularJS中,一个指令就是一个对象,它...
在这个"angularjs-directive-workshop"中,我们将深入探讨 AngularJS 的指令特性,这些是构建可复用、组件化的前端应用的关键工具。 指令是 AngularJS 的核心特性之一,它们允许我们扩展 HTML,添加自定义的行为和...