为什么不上课适用于Angular指令?

时间:2015-02-22 01:06:12

标签: javascript css angularjs class angularjs-directive

我对Angular指令应该如何呈现为DOM元素感到有些困惑。

我的指令模板元素使类很好,并且无论指令元素的尺寸如何,它们都以正确的尺寸呈现。

问题是渲染的指令元素本身确实采用了类属性,这对我来说在DOM中看起来很奇怪,因为它具有auto高度。

以下是我的问题的视觉效果:

photo1

描述是我的指示元素,见此处:

photo2

您可以看到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');
    }
  }
})

1 个答案:

答案 0 :(得分:0)

正如@mosho在评论中提到的那样,可能是由于display: block元素上缺少<month>

要展开此the initial value for the display style is inline,除非在某个样式表中覆盖,例如默认的浏览器样式表或您在页面上包含的样式表,否则它将适用。由于<month>是自定义html元素,因此在默认浏览器样式表中不会提及它,因此将被视为具有display: inline,因此忽略高度和宽度样式。