angular.module('app').directive('perfBegin', function() {
return {
restrict: 'A',
controller: ['$log', function($log) {
var vm = this;
vm._perfBegin = performance.now();
}]
}
});
angular.module('app').directive('perfEnd', function() {
return {
restrict: 'A',
require: '^perfBegin',
link: function(scope, el, attrs, perf) {
$log.log('Time (ms) = ' + (performance.now() - perf._perfBegin));
}
}
});
我想像这样使用上面的指令......
<span perf-begin></span>
JS here
<span perf-end></span>
有可能这样做吗? 似乎AngularJS要求我将我的跨度放在我的范围内,我宁愿不这样做。 ^ require和require之间有什么区别?
答案 0 :(得分:0)
不,要求不能用于姐妹元素。你可以做的是定义一个父指令,它是两个姐妹的父母,并让每个姐妹都要求父母。
<div parent>
<span sister1>
...
</span>
<span sister2>
...
</span>
</div>
require ^ parent vs require parent之间的区别是^ parent将在DOM树的上方搜索父指令。要求父(不带^)搜索指令所在的元素。在上面的例子中,使用^ parent是合适的。