我的博客日记--angular学习(1)

一:指令中关于模板问题


exModule.directive('expander',function(){
	return{
		restrict:'AE',
		require:'^?accordion',
		transclude:true,
		replace:true,
		scope:{
			title:'=expanderTitle'
		},
		template:'<div class="title" ng-click="toggle()">{{title}}</div><div class="body" ng-transclude ng-show="showme"></div>',
		link:function(scope,element,attrs,accordincontroller){
			scope.showme=false;
			accordincontroller.addExpander(scope);
			scope.toggle=function toggle(){
				scope.showme=!scope.showme;
				accordincontroller.getOpened(scope);
			};
		}
	}

});
该代码中template 必须以一个div元素的形式作为模板,否则会报错:
Error: [$compile:tplrt] Template for directive 'expander' must have exactly one root element. 


二.指令中关于require引用

可通过require引用其他指令或者控制器、服务来调用某些函数或者属性;

require:'^?accordion'

即为引用accordion指令,且其中^符号表示从其上级中向上搜索,?符号表示可有可无


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值