bootstrap - reset form angularjs
AngularJS<input> validation sin encierre<form> (3)
Basándose en la respuesta de Silvio Lucas, si está iterando en un bucle y necesita poder interpolar nombres de formularios y estados válidos:
<div
name="{{propertyName}}"
ng-form=""
class="property-edit-view"
ng-class="{
''has-error'': {{propertyName}}.editBox.$invalid,
''has-success'':
{{propertyName}}.editBox.$valid &&
{{propertyName}}.editBox.$dirty &&
propertyValue.length !== 0
}"
ng-switch="schema.type">
<input
name="editBox"
ng-switch-when="int"
type="number"
ng-model="propertyValue"
ng-pattern="/^[0-9]+$/"
class="form-control">
<input
name="editBox"
ng-switch-default=""
type="text"
ng-model="propertyValue"
class="form-control">
<span class="property-type" ng-bind="schema.type"></span>
</div>
¿Es posible en Angular validar una única <input>
aislada de forma similar a como se validan los formularios? Estoy pensando en algo como esto:
<div class="form-group">
<input name="myInput" type="text" class="form-control" ng-model="bindTo" ng-maxlength="5">
<span class="error" ng-show="myInput.$error.maxlength">Too long!</span>
</div>
El ejemplo anterior no funciona. Adjuntarlo en una <form>
y reemplazar ng-show
con ng-show="myForm.myInput.$error.maxlength"
ayuda.
¿Es posible hacer esto sin usar <form>
?
Puede usar la directiva angular ng-form ( consulte los documentos aquí ) para agrupar cualquier cosa, incluso fuera de un formulario html. Entonces, puede tomar ventaja de FormController angular.
<div class="form-group" ng-form name="myForm">
<input name="myInput" type="text" class="form-control" ng-model="bindTo" ng-maxlength="5">
<span class="error" ng-show="myForm.myInput.$error.maxlength">Too long!</span>
</div>
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write(''<base href="'' + document.location + ''" />'');</script>
<link rel="stylesheet" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"> </script>
</head>
<body ng-controller="MainCtrl">
<div class="help-block error" ng-show="test.field.$error.required">Required</div>
<div class="help-block error" ng-show="test.firstName.$error.required">Name Required</div>
<p>Hello {{name}}!</p>
<div ng-form="test" id="test">
<input type="text" name="firstName" ng-model="firstName" required> First name <br/>
<input id="field" name="field" required ng-model="field2" type="text"/>
</div>
</body>
<script>
var app = angular.module(''plunker'', []);
app.controller(''MainCtrl'', function($scope) {
$scope.name = ''World'';
$scope.field = "name";
$scope.firstName = "FirstName";
$scope.execute = function() {
alert(''Executed!'');
}
});
</script>