1

I have a data table that is in-line editable. One of the columns that is editable is an md-input field. I can easily enough add md-maxlength="80" to show the character counter. Given that this data table is done with UI-Grid (that code isn't relevant here), it applies the counter to all md-inputs in that column. What I really want is it to only show the character counter on focus. This is using Angular 1.X.

Ive got this so far, but I dont know if the expression to ng-class can accept anything except CSS classes.


<md-input
    ng-init="focused=false"
    ng-class="{'md-maxlength=80': focused}"
    ng-focus="focused=true"
    ng-blur="focused=false"
    ...
</md-input>

1 Answer 1

1

If I am understanding correctly, you want to add the md-maxlength="80" attribute when focused is true. Right now you are attempting to set the attribute as a CSS class which would make no sense since you can't have <div class="myClass md-maxlength='80'">

Why not just set the value of the md-maxlenth property conditionally? Set the value to 80 when focused=true and set it to null otherwise. Possibly set it to 0 or some other value that makes sense for the md-input control since I'm not familiar with it.

<md-input
    ng-init="focused=false"
    md-maxlength="focused ? 80 : null"
    ng-focus="focused=true"
    ng-blur="focused=false"
    ...
</md-input>
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.