javascript - 当我在 Angular Material 中添加新元素时,布局 ="row"的高度不会改变

标签 javascript css angularjs angular-material

我有这样的 html:

<body layout="row" ng-app="myApp" ng-cloak="ng-cloak" ng-controller="main">
  <md-content flex="100" layout="row" class="management-panelmd-background md-hue-1">
    <md-card class="md-whiteframe-4dp detail">
      <div layout="row" layout-align="begin begin" ng-repeat="item in vm.managementPanelsFields" style="margin-bottom: 30px;" class="row flex">
        <div flex="40" ng-show="item.isVisible">{{item.name}}</div>
        <div flex="60" ng-show="item.isVisible" class="spacing">
          <div ng-if="item.IsMultipleValue" class="multiple">
            <ul>
              <li ng-repeat="e in item.value track by $index" layout="row" layout-align="begin end">
                <div ng-if="item.fieldType == 'Int'" flex="45">
                  <md-input-container>
                    <label>{{item.watermarkText}}</label>
                    <input type="number" name="{{item.id}}-{{$index}}" ng-pattern="item.regexValidation" ng-required="item.isRequired" ng-model="item.value[$index]"/>
                  </md-input-container>
                </div>
                <div ng-if="item.complementary" flex="45">
                  <div ng-if="item.complementary.fieldType == 'Dropdown'">
                    <md-select ng-model="item.complementary.value[$index]">
                      <md-option ng-repeat="(key, value) in item.complementary.options" value="{{key}}">{{value}}</md-option>
                    </md-select>
                  </div>
                </div>
                <div flex="10" class="delete"><a ng-click="deleteValue(item, $index)">X</a></div>
              </li>
            </ul>
            <md-button ng-click="newValue(item)" class="md-raised md-primary">ADD</md-button>
          </div>
          <div ng-if="!item.IsMultipleValue" layout="row">
            <div ng-if="item.fieldType == 'TextArea'" flex="100" ng-class="{error: form[item.id].$error}">
              <textarea name="{{item.id}}" ng-trim="false" ng-required="item.isRequired" ng-pattern="item.regexValidation" placeholder="{{item.watermarkText}}" ng-model="item.value"></textarea>
            </div>
          </div>
        </div>
      </div>
    </md-card>
  </md-content>
</body>

当我使用添加按钮创建动态输入时,该按钮位于输入旁边的文本区域上方,以及具有 ng-repeat="item in vm.managementPanelsFields"的 div 的高度 即使内容有更大的高度也不要改变。

这里是 code pen

最佳答案

高度不会改变,因为您使用的是 flex。每行都设置为 flex: 1,这意味着行之间的高度比将为 1:1 = 相同高度。

您的容器有 flex: 1 1 100%:这定义了内容的总高度将是屏幕高度的 100%,因此,每行将占据屏幕的 50%。我只能从你的问题中推断这不是你想要的。

您可以删除 layout="row"

md-content.management-panelmd-background.md-hue-1(flex="100")

这将解决动态高度问题。你没有说你要求的布局是什么,所以我建议了我自己的布局。

关于javascript - 当我在 Angular Material 中添加新元素时,布局 ="row"的高度不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169382/

相关文章:

javascript - 部分模板中的 AngularJS 2 向绑定(bind)和刷新问题

javascript - 当输入 ="file"时,如何获得预选输入?

javascript - Chrome JavaScript 错误

javascript - css类只应用于一个按钮

javascript - NaN 值在按下 Tab 键或存在 onclick 功能时自动输入

css - div 元素中链接之间的空间

html - 我怎样才能在中间有 Font Awesome 图标的标题后划一行?

javascript - D3 : Stacked bar chart exit(). remove() 不删除栏

angularjs - 如何解决Angular中 Controller 多参数形式?

javascript - Angular js错误: [$injector:modulerr] Failed to instantiate module ngroute due to: