ng-pristineএবং মধ্যে পার্থক্য কি ng-dirty? মনে হচ্ছে আপনার উভয়টি থাকতে পারে true:
$scope.myForm.$pristine = true; // after editing the form
ng-pristineএবং মধ্যে পার্থক্য কি ng-dirty? মনে হচ্ছে আপনার উভয়টি থাকতে পারে true:
$scope.myForm.$pristine = true; // after editing the form
উত্তর:
ng-dirtyবর্গ জানায় যে ফর্ম, ব্যবহারকারী দ্বারা পরিবর্তন করা হয়েছে যেহেতু ng-pristineবর্গ আপনি বলে যে ফর্ম ব্যবহারকারীর দ্বারা পরিবর্তন করা হয় নি। সুতরাং ng-dirtyএবং ng-pristineএকই গল্পের দুটি দিক।
ক্লাসগুলি যে কোনও ক্ষেত্রে সেট করা আছে, যখন ফর্মটির দুটি বৈশিষ্ট্য রয়েছে $dirtyএবং $pristine।
আপনি $scope.form.$setPristine()একটি ফর্মটি মূল অবস্থাতে পুনরায় সেট করতে ফাংশনটি ব্যবহার করতে পারেন (দয়া করে নোট করুন এটি একটি AngularJS 1.1.x বৈশিষ্ট্য)।
আপনি যদি $scope.form.$setPristine()AngularJS এর 1.0.x শাখায়ও আইশ আচরণ করতে চান তবে আপনার নিজের সমাধানটি রোল করা দরকার (কিছু সুন্দর ভাল জিনিস এখানে পাওয়া যাবে )। মূলত, এর অর্থ সমস্ত ফর্ম ক্ষেত্রগুলিতে পুনরাবৃত্তি করা এবং তাদের $dirtyপতাকা সেট করা false।
আশাকরি এটা সাহায্য করবে.
মূল ক্ষেত্রটি এখনও ভার্জিন কিনা তা আমাদের জানিয়ে দেয় এবং ব্যবহারকারী ইতিমধ্যে সম্পর্কিত ক্ষেত্রে কিছু টাইপ করেছে কিনা তা নোংরা আমাদের বলে:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<form ng-app="" name="myForm">
<input name="email" ng-model="data.email">
<div class="info" ng-show="myForm.email.$pristine">
Email is virgine.
</div>
<div class="error" ng-show="myForm.email.$dirty">
E-mail is dirty
</div>
</form>
যে ক্ষেত্রটি একটি একক কীডাউন ইভেন্টটি নিবন্ধভুক্ত করেছে সেগুলি আর ভার্জিন নয় (আর কোনও প্রাচীন নেই) এবং তাই চিরতরে নোংরা।
উভয় নির্দেশাবলী স্পষ্টতই একই উদ্দেশ্যে কাজ করে, এবং যদিও মনে হয় যে কৌণিক দলের সিদ্ধান্তকে উভয়ই ডিআরওয়াই নীতিতে হস্তক্ষেপ করে এবং পৃষ্ঠার পেডলোডকে যুক্ত করে, তবে এখনও উভয়কেই কাছাকাছি রাখাই বরং ব্যবহারিক। আপনার সিএসএস ফাইলে স্টাইলিংয়ের জন্য .ng-pristine এবং .ng-নোংরা দুটোই থাকায় আপনার ইনপুট উপাদানগুলিকে স্টাইল করা সহজ। আমার ধারণা, উভয় নির্দেশিকা যুক্ত করার এটিই প্রাথমিক কারণ ছিল।
.ng-pristineএবং .ng-dirtyবিভিন্ন CSS স্টাইলিংকে অনুমতি দিন - এটি খ্যাতির পিছনে সবচেয়ে সঠিক কারণ বলে মনে হচ্ছে
পূর্বের উত্তরে যেমন ইতিমধ্যে বলা হয়েছে, ng-pristineক্ষেত্রটি সংশোধন ng-dirtyকরা হয়নি তা নির্দেশ করার জন্য , যদিও এটি পরিবর্তনের জন্য বলা হয়েছে। দুজনের দরকার কেন?
ধরা যাক আমরা ক্ষেত্রগুলির মধ্যে ফোন এবং ইমেল ঠিকানা সহ একটি ফর্ম পেয়েছি। হয় ফোন বা ই-মেল প্রয়োজন হয়, এবং প্রতিটি ক্ষেত্রের অবৈধ ডেটা পেয়ে গেলে আপনাকে ব্যবহারকারীকেও জানাতে হবে। এটি ব্যবহার ng-dirtyএবং ng-pristineএকসাথে সম্পন্ন করা যেতে পারে :
<form name="myForm">
<input name="email" ng-model="data.email" ng-required="!data.phone">
<div class="error"
ng-show="myForm.email.$invalid &&
myForm.email.$pristine &&
myForm.phone.$pristine">Phone or e-mail required</div>
<div class="error"
ng-show="myForm.email.$invalid && myForm.email.$dirty">
E-mail is invalid
</div>
<input name="phone" ng-model="data.phone" ng-required="!data.email">
<div class="error"
ng-show="myForm.phone.$invalid &&
myForm.email.$pristine &&
myForm.phone.$pristine">Phone or e-mail required</div>
<div class="error"
ng-show="myForm.phone.$invalid && myForm.phone.$dirty">
Phone is invalid
</div>
</form>
এনজি-প্রাইস্টাইন ($ প্রিন্টিন)
বুলিয়ান ট্রু যদি ফর্ম / ইনপুটটি এখনও ব্যবহার না করা হয় ( ব্যবহারকারীর দ্বারা পরিবর্তিত হয়নি )
এনজি-নোংরা ($ নোংরা)
ফর্ম / ইনপুট ব্যবহার করা হয়েছে ( ব্যবহারকারী দ্বারা সংশোধিত ) বুলিয়ান সত্য
$ setDirty (); একটি নোংরা অবস্থায় ফর্ম সেট করে। এই পদ্ধতিটি 'এনজি-নোংরা' শ্রেণি যোগ করতে এবং ফর্মটিকে একটি নোংরা অবস্থায় (এনজি-নোংরা শ্রেণি) সেট করতে বলা যেতে পারে। এই পদ্ধতিটি প্যারেন্ট ফর্মগুলিতে বর্তমান অবস্থার প্রচার করবে।
$ setPristine (); ফর্মটিকে তার প্রাথমিক অবস্থায় সেট করে। এই পদ্ধতিটি ফর্মের $ আদিম অবস্থাকে সত্য হিসাবে নির্ধারণ করে, $ নোংরা অবস্থা মিথ্যাতে, এনজি-নোংরা শ্রেণিকে সরিয়ে দেয় এবং এনজি-আদিম শ্রেণি যুক্ত করে। অতিরিক্তভাবে, এটি $ জমা দেওয়া স্থিতিকে মিথ্যা হিসাবে সেট করে। এই পদ্ধতিটি এই ফর্মটিতে থাকা সমস্ত নিয়ন্ত্রণেও প্রচার করবে।
কোনও ফর্মটিকে সংরক্ষণের পরে পুনরায় সেট করার পরে 'পুনঃব্যবহার' করতে চাইলে প্রায়শই একটি প্রাথমিক অবস্থানে ফর্ম সেট করা প্রায়শই কার্যকর।