javascript - 为什么类不适用于 Angular 指令?

标签 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');
    }
  }
})

最佳答案

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

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

关于javascript - 为什么类不适用于 Angular 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28653336/

相关文章:

javascript - requirejs 优化器无法在 jquery 中加载

javascript - 多选元素 - onchange

javascript - 带有 ng-transclude 的指令将 html 包装在 ng-transclude 元素中

javascript - 在服务器中构建 html 并绑定(bind)到 ng-repeat

javascript - 事件循环和 promise

html - 将图像左对齐、文本居中、图像右对齐在同一行

javascript - 使用 jQuery 和 CSS 将数字转换为星级显示

html - 将元素定位在底部,之前的元素填充高度

javascript - 如何在 ng-repeat 中将对象属性别名为变量

javascript - 如何使用 angular.js $http 服务在 PHP 后端 API 中实现 'hit' 特定功能?