Angular размещает только атрибут ng-minlength, если проанализированное значение не равно нулю

Я хочу установить свой атрибут ng-minlength только тогда, когда значение, которое я анализирую из data.Validation['minlength'], не равно нулю.

Сначала я попытался использовать ng-switch; У меня не было проблем с этим при работе с ng-show=true/false. Однако мне не удалось заставить его работать, когда это было не только значение, но и все объявление ng-minlength="...". Вторая попытка заключалась в использовании ng-if, но снова мне не удалось заставить его работать в «середине» ввода.

Ниже приведен код, который работает: я хочу, чтобы все ng-minlength="data.Validation['minlength']" устанавливалось только в том случае, если значение не равно нулю.

<input type="text" name="foo" ng-model="item.foo" 
ng-minlength="data.Validation['minlength']" required/>

person Nicklas Kevin Frank    schedule 07.07.2014    source источник


Ответы (2)


Я обнаружил более простой подход в другом моем вопросе.

Решение Karaxuna здесь.< /а>

<input type="text" name="foo" ng-minlength="myvar || 0" required/>
person Nicklas Kevin Frank    schedule 08.07.2014

Вы можете попробовать ng-switch-on

 <span ng-switch on="data.Validation>
    <input ng-switch-when="null" type="text" name="foo" ng-model="item.foo" ng-minlength="data.Validation['minlength']" required/>
    <input ng-switch-default type="text" name="foo" ng-model="item.foo" required/>
</span>

Он будет создавать входные данные в зависимости от значений data.Validation.

Однако я не уверен, будет ли он работать со значениями NULL. Это все еще хороший путь вперед.

person Michał Lach    schedule 07.07.2014
comment
Да, спасибо, я надеялся, что смогу избежать использования ng-switch-on, так как у меня есть 3-5 разных точек проверки, и все они могут быть нулевыми. - person Nicklas Kevin Frank; 07.07.2014
comment
Вы по-прежнему создаете пользовательскую директиву, которая добавит атрибут ng-min на основе переданного вами значения. - person Michał Lach; 07.07.2014