0.10.5 emit on validation
by vaiism
HTML
<script src="http://code.angularjs.org/angular-0.10.5.min.js" ng:autobind></script>
<script>
function TestController() {
this.regex = "";
this.validateRegex = function() {
var regexWidget = this.settingsForm.regex;
try {
var regExTest = new RegExp(regexWidget.$viewValue);
regexWidget.$emit('$valid', 'VALID_REGEX');
} catch (e) {
regexWidget.$emit('$invalid', 'VALID_REGEX');
}
};
}
</script>
<div ng:controller="TestController">
<div id="validationError" style="display:none;" class="alert_box error" ng:show="settingsForm.$invalid">
<ul>
<li ng:show="settingsForm.regex.$error.VALID_REGEX">Invalid Regular Expression</li>
</ul>
</div>
<form name="settingsForm">
<b>RegEx:<b> <input type="text" id="regex" name="regex" ng:change="validateRegex();" ng:model="regex" />
<hr/>
<tt>regex = {{regex}}</tt><br/>
<tt>settingsForm.$valid = {{settingsForm.$valid}}</tt><br/>
<tt>settingsForm.regex.$error.VALID_REGEX = {{settingsForm.regex.$error.VALID_REGEX}}</tt><br/>
</form>
</div>
CSS
body {font-family:sans-serif;font-size:12pt;padding:10px; }
.error { color: red; }
input, select {
margin: 4px;
}
input.ng-invalid, select.ng-invalid, textarea.ng-invalid, input.formElement.ng-invalid {
border: solid 1pt red;
}
.alert_box {border: solid 1pt red;padding:5px;}
tt {font-size: 10pt;}
#output {background-color: #efefef;padding:5px;border:solid 1pt #ddd;}