У меня возникают проблемы с проверкой 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?. Также модель сбрасывается, когда я переключаюсь на другой случай...
Надеюсь, что есть решение...
Вы должны использовать директиву 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>