Angular.js: рдкреИрд░реЗрдВрдЯ ngMessages рдХреЛ DOM рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ ngMessages рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЕрдЧре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/angular.js

рдЬреИрд╕рд╛ рдХрд┐ рд╢реАрд░реНрд╖рдХ рдХрд╣рддрд╛ рд╣реИ, ngMessagesInclude рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореВрд▓ ngMessages рдХреЛ DOM рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдгреАрдп рдЖрдВрддрд░рд┐рдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдХ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рддрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рдЬрдм ngMessage рдХреЛ ngMessages рддрддреНрд╡ рдХреЗ рдЕрдВрджрд░ рдЗрдирд▓рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдЬрдм рдореВрд▓ рддрддреНрд╡ рдЕрднреА рднреА DOM рдкрд░ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдПрдХ рдПрдирдЬреА-рд╕рдВрджреЗрд╢ рд▓реЗрдВ:

<div ng-if="myForm.$submitted" ng-messages="myForm.myName.$error">
  <div ng-messages-include="messages.html"></div>
</div>

рд╕рдмрдорд┐рд╢рди рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

this.change = function(myForm) {
  var self = this;
  myForm.$setSubmitted();    // event A
  $scope.$applyAsync(function () {
    self.currentStep = 'step2.html';     // event B
  });
};

рдШрдЯрдирд╛ (рдП) рдкрд░, messages.html рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ $templateRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд╛рдкрд╕ рдЖрдиреЗ рддрдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рд░реБрдХреА рд╣реБрдИ рд╣реИред рдЗрд╕ рдмреАрдЪ, рдИрд╡реЗрдВрдЯ (B) ngMessages рдФрд░ рдЙрд╕рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ DOM рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ, ngMessagesInclude рд╕рд╛рдордЧреНрд░реА рдЖрддреА рд╣реИ рдФрд░ рдХреЛрдгреАрдп рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдЕрдм ngMessages рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

Plnkr: http://plnkr.co/edit/0GOOLERvfj7n9vDVEyZp?p=preview

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп, рдпрд╣ ngIf рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛ред

рд╕рдВрд╕реНрдХрд░рдг 1.4.4 рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ:

ng-if="myForm.$submitted && myForm.myName.$invalid" 

рдШрдЯрдХ рдкрдХреНрд╖ рдкрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, require: '^^ngMessages' рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

ngMessages low confusing bug

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХ рдЖрд╕рд╛рди рдлрд┐рдХреНрд╕ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ ngMessages рдореЗрдВ HTML рдХреЛ рд╕рдВрдХрд▓рд┐рдд/рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджрд╛рдпрд░рд╛ рдирд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ:

$templateRequest(src).then(function(html) {
    if (scope.$$destroyed) return;
    // ...
}

рдЗрд╕ рддрд░рд╣ ngInclude рдЙрд╕реА рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╣реИ рдЬреИрд╕реЗ ngInclude рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред
@awerlang рдпрд╛ @jpekkala , рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ?

рдЬрд╝рд░реВрд░ред рдореИрдВ рдПрдХ рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рдПрдХ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

brijesh1ec picture brijesh1ec  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

th0r picture th0r  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gkalpak picture gkalpak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jetta20162 picture jetta20162  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

butchpeters picture butchpeters  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ