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;}