title: How get AngularJS element by name?
body: <p>In my form validation there is part of server validations.
  So I should get back from the server list with the names of the fields and a string with the error in each of them. 
  My idea was to write a general code knowledge to deal with all fields without knowing them in advance, by accessing them with their name.
  this is field for example:</p>
  
  <pre><code>&lt;!-- Email --&gt;
  &lt;div class="form-group" data-ng-class="{ 'has-error' : step1Form.email.$invalid &amp;&amp; (!step1Form.email.$pristine || submitted) }"&gt;
       &lt;label&gt;Email&lt;/label&gt;
       &lt;input type="email" name="email" class="form-control" data-ng-model="user.email" required data-ng-minlength="5" data-ng-maxlength="60"&gt;
       &lt;p data-ng-show="step1Form.email.$error.required &amp;&amp; (!step1Form.email.$pristine || submitted)" class="help-block"&gt;required!&lt;/p&gt;
       &lt;p data-ng-show="step1Form.email.$error.minlength" class="help-block"&gt;too short1&lt;/p&gt;
       &lt;p data-ng-show="step1Form.email.$error.maxlength" class="help-block"&gt;too long!&lt;/p&gt;
       &lt;p data-ng-show="step1Form.email.$error.email" class="help-block"&gt;invalid email!&lt;/p&gt;
       &lt;p data-ng-show="step1Form.email.$error.serverError" class="help-block"&gt;{{emailServerError}}&lt;/p&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>like you can see, the variable emailServerError is saved for errors that come from the server validations...
  i have a lot fields in my application and i try to write generic code that will fit for all the fields...</p>
  
  <p>so this is the angular code:</p>
  
  <pre><code>// function to submit the form after all validation has occurred            
  $scope.submitForm = function() {
  
      // check to make sure the form is completely valid
      if ($scope.step1Form.$valid) {
          // now we will go to server side validation
          // AJAX calls.......
          // lets say we got this back:
          var problem = { field: 'email', msg: 'this email is already registered'};
  
          // now we need to setValidity for email input.
          var errorVariableName = $parse(problem.field + 'ServerError');  // Get the name of the error string variable.
          errorVariableName.assign($scope, problem.msg);  // Assigns a value to it
  
          console.log($scope.emailServerError); // = 'this email is already registered'
  
          // HERE THE PROBLEM:
          // now i need to do something like that:
          // $scope.step1Form. + problem.field + .$setValidity('serverError', false);
          // but i dont know how to this that.
  
          // i think that i need to get this element ($scope.step1Form. + problem.field) in some way by name, and then use setValidity on it. but i dont know how.. 
      }      
  };
  </code></pre>
  
  <p>the question is in the comments inside the code...</p>