【发布时间】:2015-04-14 23:46:53
【问题描述】:
我有这个指令:
angular.module('exampleApp').directive('exampleDirective', ['$document', '$window', function($document, $window) {
return {
restrict: 'E',
scope: false,
template: '<div class="foo"></div>',
link: function($scope, $element, $attrs) {
var targetElement = angular.element(document.querySelector($attrs['targetSelector']));
console.log(targetElement.css('height'));
}
}
]);
这个 html 效果很好:
<div id="div1" style="height: 100px">A div</div>
<example-directive target-selector="#div1" />
因为在控制台中我看到:“100px”打印出来了
但是有了这个 html:
<style>
.div-example {
height: 100px;
}
</style>
<div id="div2" class="div-example">A div</div>
<example-directive target-selector="#div2" />
基本相同,但没有内联样式,该指令根本不起作用。控制台正在打印:“”(空字符串)。
我该如何解决这个问题?
我试过scope: true,但也没有用。targetElement.css('height') 是否只适用于内联样式?
【问题讨论】:
-
id="#div2" 应该是 id="div2"
-
是的,写问题时这是一个错字,对不起......真正的代码没有那个错字。我已经修复了问题中的代码。
-
jqlite - css - 仅检索内联样式,不调用 getComputedStyle() - docs.angularjs.org/api/ng/function/angular.element#css()
标签: angularjs angularjs-directive