发表于: 2017-01-04 00:57:12
1 1531
今天完成的事情:看了用angularJs开发下一代web应用的指令章节;看了angularJS权威教程的作用域、控制器、表达式、过滤器、指令简介、内置指令、指令详解章节;看了下分治算法的实现;看了下perl的特性
明天计划的事情:继续看指令,不弄懂不看别的js方面的知识了,这是angular核心之一,比其他死记或者拿来用的知识有用多了,熟练掌握指令才能提高竞争力。
遇到的问题:学习曲线有点陡峭,感觉自定义指令里属性、概念很多、用法不是那么容易理解和应用,也没有什么好的demo能形象的学习。求大神分享好的学习方法。
收获:
var myModule = angular.module(...);
myModule.directive('namespaceDirectiveName', function
factory(injectables) {
var directiveDefinitionObject = {
restrict: string,
priority: number,
template: string,
templateUrl: string,
replace: bool,
transclude: bool,
scope: bool or object,
controller: function controllerConstructor($scope, $element,
$attrs, $transclude){...},
require: string,
link: function postLink(scope, iElement, iAttrs) {...},
compile: function compile(tElement, tAttrs, transclude){
return: {
pre: function preLink(scope, iElement, iAttrs,
controller){...},
post: function postLink(scope, iElement, iAttrs,
controller){...}
}
}
};
return directiveDefinitionObject;
});
restrict
声明指令可以作为一个元素, 属性, 类, 注释或者任意的组合如何用于模板
中
priority
优先级
template
指令一个作为字符串的内联模板. 如果你指定一个模板URL 就不要使用这个
模板属性
replace
如果为true, 则替换当前元素. 如果为false 或者未指定, 则将这个指令
追加到当前元素上
transclude
让你将一个指令的原始自节点移动到心模板位置内
scope
为这个指令创建一个新的作用域而不是继承父作用域
controller
为跨指令通信创建一个发布的API
require
需要其他指令服务于这个指令来正确的发挥作用
link
以编程的方式修改生成的DOM 元素实例, 添加事件监听器, 设置数据绑
定
compile
以编程的方式修改一个指令的DOM 模板的副本特性, 如同使用`ng-repeat`
时. 你的编译函数也可以返回链接函数来修改生成元素的实例
评论