Проверка Angular TextArea внутри коммутатора

0

У меня возникают проблемы с проверкой 2 текстовых полей внутри переключателя в угловом... Например:

<html ng-app="CholoApp">
<head>
    <script src="angular.min.1.3.9.js" type="text/javascript"></script>
    <script type="text/javascript">
    var modulo = angular.module("CholoApp",[]);
    modulo.controller("CholoAppController",function($scope){
        $scope.index = 0;
        $scope.ver = function()
        {
            alert("Ver");
        }
    });
    </script>
</head>
<body ng-controller="CholoAppController">
    <div ng-switch on="index">
            <div  ng-switch-when="0">
                        <form name="formularioObservaciones" novalidate>
                                <textarea
                                    id="observaciones"
                                    ng-model="observacionesModel"

                                    ng-maxlength="10">
                                </textarea>

                        </form>
            </div>
    </div>
    <button type="button" ng-click="ver();" ng-disabled="!(formularioObservaciones.$valid)">Ver</button>
</body>

Например, этот код должен включать кнопку... Но она отключена!. Дело в том, что это происходит внутри коммутатора... Почему это hapenning?. Также модель сбрасывается, когда я переключаюсь на другой случай...

Надеюсь, что есть решение...

  • 0
    что вы подразумеваете под "Например, в этом коде должна быть включена кнопка?" в каком случае это должно быть включено? с какими ценностями? этот учебник может помочь вам scotch.io/tutorials/angularjs-form-validation
  • 0
    Спасибо Деннис ... Я имел в виду это ... Если вы оставите текстовое поле пустым, кнопка должна быть включена ... И я не знаю, почему она отключена ... Спасибо! ...
Теги:
validation
textarea

1 ответ

1

Вы должны использовать директиву ng-show. Это происходит так, как работают директивы ng-switch и ng-if, он динамически генерирует его содержимое и форма formularioObservaciones недоступна. ng-show просто изменяет свойство html.

Вот пример того, как вы могли бы решить это с помощью ng-show:

<body ng-controller="CholoAppController">
    <div  ng-show="index == 0">
                <form name="formularioObservaciones" novalidate>
                        <textarea
                            id="observaciones"
                            ng-model="observacionesModel"

                            ng-maxlength="10">
                        </textarea>
                </form>
    </div>
    <button type="button" ng-click="ver();" ng-disabled="!(formularioObservaciones.$valid)">Ver</button>
</body>

Если вы все еще хотите использовать ng-switch, вы можете сделать это следующим образом:

<body ng-controller="CholoAppController">
    <div ng-switch on="index">
        <div ng-show="index == 0">
                    <form name="formularioObservaciones" novalidate>
                            <textarea
                                id="observaciones"
                                ng-model="observacionesModel"

                                ng-maxlength="10">
                            </textarea>
                    </form>
                    <button type="button" ng-click="ver();" ng-disabled="!(formularioObservaciones.$valid)">Ver</button>
        </div>
    </div>
</body>
  • 0
    ОООООХХХХ спасибо ооочень много Домас Мар! ... Ты правишь! ... Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню