{"version":"1.0","provider_name":"Developer Support","provider_url":"https:\/\/devblogs.microsoft.com\/premier-developer","author_name":"Developer Support","author_url":"https:\/\/devblogs.microsoft.com\/premier-developer\/author\/premierdev\/","title":"Angular How-to: Share Server-side Validation - Developer Support","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"i0yVNPFDBy\"><a href=\"https:\/\/devblogs.microsoft.com\/premier-developer\/angular-how-to-share-server-side-validation\/\">Angular How-to: Share Server-side Validation<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/premier-developer\/angular-how-to-share-server-side-validation\/embed\/#?secret=i0yVNPFDBy\" width=\"600\" height=\"338\" title=\"&#8220;Angular How-to: Share Server-side Validation&#8221; &#8212; Developer Support\" data-secret=\"i0yVNPFDBy\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/premier-developer\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-content\/uploads\/sites\/31\/2019\/10\/learning_fi.png","thumbnail_width":400,"thumbnail_height":266,"description":"Laurie Atkinson, Senior Consultant, avoid duplication of field-level validation by dynamically applying server-side validation rules on Angular controls. Validation attributes are simple to apply to an Angular control within an HTML template, but that validation logic must be duplicated on the server. Instead, you can build an Angular validation service that parses server-generated rules and [&hellip;]"}