我对Angular指令应该如何呈现为DOM元素感到有些困惑。
我的指令模板元素使类很好,并且无论指令元素的尺寸如何,它们都以正确的尺寸呈现。
问题是渲染的指令元素本身确实采用了类属性,这对我来说在DOM中看起来很奇怪,因为它具有auto
高度。
以下是我的问题的视觉效果:
描述是我的指示元素,见此处:
您可以看到months
类已应用于该指令,但其属性尚未传播。所以指令的高度和宽度都转到auto
,即使我想要60px
。有什么问题?
指令:
<month ng-model="month" class="months"></month>
部分模板:
app.directive('month', function() {
return {
scope:{},
template:'<div class="months">test</div>',
link: function (scope, element, attrs) {
element.addClass('months');
}
}
})
答案 0 :(得分:0)
正如@mosho在评论中提到的那样,可能是由于display: block
元素上缺少<month>
。
要展开此the initial value for the display
style is inline
,除非在某个样式表中覆盖,例如默认的浏览器样式表或您在页面上包含的样式表,否则它将适用。由于<month>
是自定义html元素,因此在默认浏览器样式表中不会提及它,因此将被视为具有display: inline
,因此忽略高度和宽度样式。