有条件地设置HTML元素属性

时间:2019-03-28 18:01:54

标签: html angularjs ng-class angularjs-material

我有一个可在线编辑的数据表。 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>

1 个答案:

答案 0 :(得分: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>