有条件地设置HTML元素属性

问题描述 投票:1回答:1

我有一个可在线编辑的数据表。其中一个可编辑的列是md-input字段。我可以很容易地添加md-maxlength="80"来显示角色计数器。鉴于此数据表是使用UI-Grid完成的(此处代码不相关),它将计数器应用于该列中的所有md输入。我真正想要的只是在焦点上显示角色计数器。这是使用Angular 1.X.

到目前为止我已经得到了这个,但我不知道ng-class的表达式是否可以接受除CSS类之外的任何内容。


<md-input
    ng-init="focused=false"
    ng-class="{'md-maxlength=80': focused}"
    ng-focus="focused=true"
    ng-blur="focused=false"
    ...
</md-input>
html angularjs ng-class angularjs-material
1个回答
1
投票

如果我理解正确,你想在md-maxlength="80"focused时添加true属性。现在你试图将属性设置为CSS类,这是没有意义的,因为你不能有<div class="myClass md-maxlength='80'">

为什么不有条件地设置md-maxlenth属性的值?在80时将值设置为focused=true,否则将其设置为null。可能将它设置为0或其他一些对md-input控制有意义的值,因为我不熟悉它。

<md-input
    ng-init="focused=false"
    md-maxlength="focused ? 80 : null"
    ng-focus="focused=true"
    ng-blur="focused=false"
    ...
</md-input>
© www.soinside.com 2019 - 2024. All rights reserved.