AngularJS ပေါ်လစ်စ် ဖုံးကွင်း အက်သီးတီးရိုက်

AngularJS သည် အက်သီးတီးရိုက် အချက်အလက် ကို အက်သီးတီးရိုက်ပြီးဖြစ်သည်။

ပေါ်လစ်စ် ဖုံးကွင်း အက်သီးတီးရိုက်

AngularJS သည် အက်သီးတီးရိုက် ပေါ်လစ်စ် ဖုံးကွင်း အက်သီးတီးရိုက် ကို ပြင်ဆင်နိုင်ပါ။

AngularJS သည် ပေါ်လစ်စ် ဖုံးကွင်း နှင့် အက်သီးတီးရိုက် ဖုံးကွင်း (input, textarea, select) များ အခြေအနေ ကို စောင့်ကြည့်ပြီး အခြေအနေ ကို အသုံးပြုသူ ကို အသိပေးနိုင်ပါ။

AngularJS သည် သူတို့ စိန့်ချရသည့်အခါ သို့မဟုတ် ပြင်ဆင်ထားသည့် အချက်အလက် ကို သိရှိနိုင်ပါ။

သင်သည် အခြေခံ HTML5 အချက်အလက် ကို အက်သီးတီးရိုက် သုံးစွဲနိုင်ပြီး ကိုယ်ပိုင် အက်သီးတီးရိုက် ဖန်တီးနိုင်ပါ။

အက်သီးတီးရိုက် ပြင်ဘက် အက်သီးတီးရိုက် ကို သီးခြား ကာကွယ်ရန် မဖြစ်နိုင်ပါ။ လိုအပ်သည့် ပြင်ဘက် အက်သီးတီးရိုက် လည်း အရေးကြီးပါ။

required

HTML5 အခြေခံ အချက်အလက် အသုံးပြုပါ။ required ဤအရာသည် လိုအပ်သည့် အက်ဒေးလ် ဖြစ်သင့်မည်မဟုတ်ပါ။

အခြား ဆိုင်းတန်းထိန်းချုပ်

ဤအရာသည် လိုအပ်သည့် အက်ဒေးလ် ဖြစ်သည့် ဖြစ်သင့်မည်မဟုတ်ပါ။

<form name="myForm">  
  <input name="myInput" ng-model="myInput" required>  
</form>  

输入的有效状态是:

{{myForm.myInput.$valid}}

တိုက်ရိုက် စမ်းသပ်

email

HTML5 အမျိုးအစား အသုံးပြုပါ။ email ဤအရာသည် အက်ဒေးလ် ဖြစ်သင့်မည်မဟုတ်ပါ။

အခြား ဆိုင်းတန်းထိန်းချုပ်

ဤအရာသည် အိမ်းသားလိုက်ကွယ် ဖြစ်သည့် အက်ဒေးလ် ဖြစ်သင့်မည်မဟုတ်ပါ။

<form name="myForm">  
  <input name="myInput" ng-model="myInput" type="email">  
</form>  

输入的有效状态是:

{{myForm.myInput.$valid}}

တိုက်ရိုက် စမ်းသပ်

表单状态和输入状态

AngularJS 会不断更新表单和输入字段的状态。

输入字段有以下状态:

  • $untouched အခြားအရာများကို ထိခိုက်မရှိသည်
  • $touched အခြားအရာများကို ထိခိုက်ပြီးသည်
  • $pristine အခြားအရာများကို ပြင်ဆင်မရှိသည်
  • $dirty အခြားအရာများကို ပြင်ဆင်ပြီးသည်
  • $invalid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • $valid ပုံစံကုဒ်များကို အသုံးပြုပါ:

它们都是输入字段的属性,要么为真,要么为假。

表单有以下状态:

  • $pristine 尚未修改任何字段
  • $dirty 个或多个字段已被修改
  • $invalid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • $valid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • $subscribed 表单已被提交

它们都是表单的属性,可以为真或假。

အဆိုပါ အခြေအနေများကို အသုံးပြုပြီး အသုံးပြုသူများအား အရေးပါသော အချက်အလက်များကို ပြသပါ၊ ဥပမာ၊ အခြားအရာများကို ပေးပါကြောင်း အချက်အလက်များကို ပြသပါ:

အခြား ဆိုင်းတန်းထိန်းချုပ်

အခြားအရာများကို ထိခိုက်ပြီး ဘယ်အရာများမပါဘဲ အမှားအရာကို ပြသပါ:

<input name="myName" ng-model="myName" required>  
<span ng-show="myForm.myName.$touched && myForm.myName.$invalid">အမည်ကို ပေးပါ。</span>

တိုက်ရိုက် စမ်းသပ်

CSS ပုံစံကုဒ်များ

AngularJS ပုံစံကုဒ်များကို ပုံစံကုဒ်များကို ထပ်ပေါင်းပြီး၊ ပုံစံကုဒ်များကို ဖျက်သိမ်းပါ:

အခြားအရာများကို ပုံစံကုဒ်များကို ထပ်ပေါင်းပြီး၊ ပုံစံကုဒ်များကို ဖျက်သိမ်းပါ:

  • ng-untouched အခြားအရာများကို ထိခိုက်မရှိသည်
  • ng-touched အခြားအရာများကို ထိခိုက်ပြီးသည်
  • ng-pristine အခြားအရာများကို ပြင်ဆင်မရှိသည်
  • ng-dirty အခြားအရာများကို ပြင်ဆင်ပြီးသည်
  • ng-valid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-invalid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-valid-key အခြားအရာများကို အတည်ပြုရာတွင် အချိန်ကို တစ်ခါတစ်ရပ် အသုံးပြုပါ:ng-valid-requiredအများပြားစွာ အစီရင်ခံစာများကို အတည်ပြုရာတွင် အသုံးပြုသည်
  • ng-invalid-key ဥပမာ:ng-invalid-required

အခြားအရာများကို ပုံစံကုဒ်များကို ထပ်ပေါင်းပြီး၊ ပုံစံကုဒ်များကို ဖျက်သိမ်းပါ:

  • ng-pristine အချိန်ကြား ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-dirty တစ်ခုခုနှင့် အချိန်ကြား ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-valid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-invalid ပုံစံကုဒ်များကို အသုံးပြုပါ:
  • ng-valid-key အခြားအရာများကို အတည်ပြုရာတွင် အချိန်ကို တစ်ခါတစ်ရပ် အသုံးပြုပါ:ng-valid-requiredအများပြားစွာ အစီရင်ခံစာများကို အတည်ပြုရာတွင် အသုံးပြုသည်
  • ng-invalid-key ဥပမာ:ng-invalid-required

အရာကို အစားထိုးပြီး အခြားအရာများကို အသုံးပြုပါ: အမှန်မဟုတ်အထိုအရာများကို ဖျက်သိမ်းပါ:

အထိုအရာများအတွက် ပုံစံကုဒ်များကို ထပ်ပေါင်းပြီး၊ သင့် အော်ဂန်ဂို အော်ဂန်ဂို ကို ပို၍ ကောင်းနားစိတ်ကျသော၊ ပုံစံကျသော အသုံးပြုသူ အကွက်အချက်ကို ပြင်ဆင်ပါ:

အခြား ဆိုင်းတန်းထိန်းချုပ်

အခြားသော CSS ပုံစံကုဒ်များကို အသုံးပြုပါ:

<style>
input.ng-invalid {
  background-color: pink;
};
input.ng-valid {
  background-color: lightgreen;
};
</style>

တိုက်ရိုက် စမ်းသပ်

ပုံစံကုဒ်များကို သတ်မှတ်လိုက်ပါ:

အခြား ဆိုင်းတန်းထိန်းချုပ်

အဖြစ်ပျက်ဘဲဖြစ်ပြီး၊ ပြင်ဆင်ပြီးသော ပုံစံကုဒ်များကို အသုံးပြုပါ:

<style>
form.ng-pristine {
  background-color: lightblue;
};
form.ng-dirty {
  background-color: pink;
};
</style>

တိုက်ရိုက် စမ်းသပ်

အခြား ဆိုင်းတန်းထိန်းချုပ်

အခြား ဆိုင်းတန်းထိန်းချုပ် တစ်ခု ကို ဖွဲ့စည်းရန် စိန်ခေါ် သဘောရှိ ပါ။ သင့် အောက်ပါ အရာ ကို ပြင်ဆင်ပြီး အောက်ပါ ပြင်ဆင်ချက် အရ ဆိုင်းတန်းထိန်းချုပ် အပြင်ဘက် သတ္တုပစ္စည်း အချက်အလက် အချို့ ကို လက်ခံပါ

အခြား ဆိုင်းတန်းထိန်းချုပ်

သင့် ကိုယ်တိုင် ဆိုင်းတန်းထိန်းချုပ် တစ်ခု ကို ဖွဲ့စည်းပြီး အခြား ဆိုင်းတန်းထိန်းချုပ် အမည် ကို သုံးပြီး my-directive ကို သုံးပြီး

အကြောင်းအား "e" ကို ပါဝင်ပါက အရာတစ်ခု အကျိုးရှိပါ

<form name="myForm">
<input name="myInput" ng-model="myInput" required my-directive>
</form>
<script>
var app = angular.module('myApp', []);
app.directive('myDirective', function() {
  return {
    require: 'ngModel',
    link: function(scope, element, attr, mCtrl) {
      function myValidation(value) {
        if (value.indexOf("e") > -1) {
          mCtrl.$setValidity('charE', true);
        } else {
          mCtrl.$setValidity('charE', false);
        };
        return value;
      };
      mCtrl.$parsers.push(myValidation);
    };
  };
});
</script>

တိုက်ရိုက် စမ်းသပ်

အချက်အလက် ဖော်ပြ

HTML တွင် အခြား ဆိုင်းတန်းထိန်းချုပ် ကို အခြေခံ ပုံ ကို အသုံးပြုပြီး my-directive ကို သုံးပြီး

JavaScript တွင် အဓိပ္ပာယ်အရ ခေါ်မည်မှာ myDirective အခြား ဆိုင်းတန်းထိန်းချုပ်အမည်

ဝန်းကျင် အမည် တစ်ခု ကို ခေါ်ဆိုရာတွင် ချီးပွားသော ချီးများ အသုံးပြုပါ myDirectiveသို့သော် သူ့ကို ခေါ်ဆိုရာတွင် ဆက်ရွတ်အက်စ် အသုံးပြုပါ my-directive

နောက်မှ အကြောင်းအား တစ်ခု ကို ပြန်အပြန် ကူးကြည်းသည် ngModelပြီး ngModelController

မှတ်ချက် တစ်ခု ကို ဖွဲ့စည်းပြီး သူ၏ ပြင်ပ သတ္တုပစ္စည်း အချက်အလက် အချို့ ကို လက်ခံကြောင်း mCtrl ဖြစ် ngModelController

နောက်မှ ဘဏ္ဍာင် တစ်ခု ကို သတ်မှတ်ပြီး myValidationပြီး သူ၏ ပြင်ပ သတ္တုပစ္စည်း တစ်ခု ကို လက်ခံကြောင်း

အကယ်၍ အကြောင်းအား "e" ကို ပါဝင်မည့်သူ့ ကို စမ်းသပ်ပြီး ဆိုင်းတန်းထိန်းချုပ်သူ၏ အကျိုးရှိခြင်းကို အစားထိုးပြီး မမှန် သို့မဟုတ် အမှန်မဟုတ်

နောက်ဆုံး။mCtrl.$parsers.push(myValidation); ပေါ်ထပ်ပေးသည်}} myValidation အကြောင်းအရာ အပေါ် ပြုလုပ်ထားသော ပြောင်းလဲမှု တခုခု အတွက် အပြုအမူ အဖွဲ့များ သို့ အပေါ်ထပ်ပေးသည်။

验证示例

<!DOCTYPE html>
<html>
<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular.min.js"></script>
<body>
<h2>验证示例</h2>
<form ng-app="myApp"  ng-controller="validateCtrl"
name="myForm" novalidate>
<p>用户名:<br>
  <input type="text" name="user" ng-model="user" required>
  <span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
  <span ng-show="myForm.user.$error.required">用户名是必填项。<
  </span>
</p>
<p>电子邮件:<br>
  <input type="email" name="email" ng-model="email" required>
  <span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
  <span ng-show="myForm.email.$error.required">电子邮件是必填项。</span>
  <span ng-show="myForm.email.$error.email">无效的电子邮件地址。</span>
  </span>
</p>
<p>
  <input type="submit"
  ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
  myForm.email.$dirty && myForm.email.$invalid">
</p>
</form>
<script>
var app = angular.module('myApp', []);
app.controller('validateCtrl', function($scope) {}}
  $scope.user = 'Bill Gates';
  $scope.email = 'bill.gates@gmail.com';
});
</script>
</body>
</html>

တိုက်ရိုက် စမ်းသပ်

HTML ပုံစံ ပါဝင် novalidate ဘရောက်လာ့တ် အချက်အလက် ကို ပိတ်ပင်

အကျိုးသက်ရှိ ပြောဆို

AngularJS အဆိုအမည် ng-model တိုက်ရိုက် အမှတ်အသား ပြား အား ဆိုင်း အရင်းတည် သို့ ပေးချင်း ထိန်းချုပ်ထား

ဆိုင်း အရင်းတည် အကိုင်း ပါ လုပ်ငန်းစွမ်းအား ၂ ခု ရှိသည်user နှင့် email

နှင့် ng-showနှင့် နောက်ပိုင်းတွင် user သို့မဟုတ် email ဖြင့် $dirty နှင့် $invalid အချိန်အချိန် ဖြင့် color:red ဖြင့် ဖော်ပြချက် ကို ပြသမည်