డైనమిక్ కంటెంట్ రెండరింగ్లో బూట్స్ట్రాప్ మోడల్ ఇన్వకేషన్ లోపాలను పరిష్కరిస్తోంది
తో పని చేస్తున్నప్పుడు బూట్స్ట్రాప్ మోడల్స్, మోడల్ కంటెంట్ను డైనమిక్గా రెండరింగ్ చేస్తున్నప్పుడు డెవలపర్లు తరచుగా లోపాలను ఎదుర్కొంటారు. అటువంటి సమస్య ఏమిటంటే "గుర్తించబడని రకం లోపం: చట్టవిరుద్ధమైన ఆహ్వానం"దోషం, ఇది నమూనా నిర్మాణంలో నేరుగా టెంప్లేట్ అక్షరాలను చేర్చినప్పుడు ఉత్పన్నమవుతుంది.
ఈ లోపం సూచిస్తుంది బూట్స్ట్రాప్ యొక్క జావాస్క్రిప్ట్ ఇంజిన్ మోడల్ బాడీలో ఇంజెక్ట్ చేయబడిన డైనమిక్ కంటెంట్ని ప్రాసెస్ చేయడంలో సమస్య ఉండవచ్చు. విలువలను సెట్ చేయడానికి టెంప్లేట్ అక్షరాలు ఉపయోగించిన సందర్భాల్లో, మోడల్ ప్రారంభీకరణ కంటెంట్ను సరిగ్గా అందించడంలో విఫలం కావచ్చు.
అతుకులు లేని వినియోగదారు అనుభవాలను కొనసాగించడానికి ఈ సమస్య యొక్క మూల కారణాన్ని అర్థం చేసుకోవడం మరియు దానిని ఎలా దాటవేయాలో తెలుసుకోవడం చాలా ముఖ్యం. ముఖ్యంగా ఫారమ్ సమర్పణలు లేదా అప్డేట్ల వంటి డేటాతో ఇంటరాక్ట్ అవుతున్నప్పుడు డైనమిక్గా ట్రిగ్గర్ చేయబడిన మోడల్లను ఇది గణనీయంగా ప్రభావితం చేస్తుంది.
ఈ వ్యాసంలో, ఈ లోపం ఎందుకు సంభవిస్తుందో మేము విశ్లేషిస్తాము మరియు దానిని నివారించడానికి మీకు సహాయపడే పరిష్కారాలను అందిస్తాము. ఈ మార్గదర్శకాలను అనుసరించడం ద్వారా, మీరు టెంప్లేట్ అక్షరాలు లేదా చట్టవిరుద్ధమైన ఆహ్వానాల వల్ల ఏర్పడే రోడ్బ్లాక్లను తాకకుండా డైనమిక్ బూట్స్ట్రాప్ మోడల్ల సజావుగా రెండరింగ్ అయ్యేలా చూసుకోవచ్చు.
ఆదేశం | ఉపయోగం యొక్క ఉదాహరణ |
---|---|
data('bs-action') | ఈ కమాండ్ బూట్స్ట్రాప్ మోడల్లకు ప్రత్యేకమైనది మరియు మోడల్ను ట్రిగ్గర్ చేసే బటన్ నుండి కస్టమ్ డేటా అట్రిబ్యూట్ (ఉదా., 'POST', 'UPDATE') విలువను తిరిగి పొందడానికి ఉపయోగించబడుతుంది. కంటెంట్ను డైనమిక్గా రెండరింగ్ చేయడానికి చర్య రకాన్ని (సృష్టించడం లేదా సవరించడం) గుర్తించడంలో ఇది సహాయపడుతుంది. |
on('show.bs.modal') | మోడల్ ట్రిగ్గర్ చేయబడిందని వినే బూట్స్ట్రాప్ యొక్క అనుకూల ఈవెంట్ బైండింగ్. ఇది మోడల్ యొక్క కంటెంట్ని వినియోగదారుకు చూపే ముందు డైనమిక్గా నవీకరించడానికి లేదా పొందేందుకు అనుమతిస్తుంది. |
append() | నిర్దిష్ట DOM మూలకంలో డైనమిక్ HTML కంటెంట్ని చొప్పించడానికి ఇక్కడ ఉపయోగించబడుతుంది. మోడల్ బాడీని మానిప్యులేట్ చేసేటప్పుడు చట్టవిరుద్ధమైన ఇన్వోకేషన్ లోపాన్ని నివారించడం, ఫ్లైలో మోడల్ కంటెంట్ను రెండరింగ్ చేయడం కోసం ఇది కీలకం. |
trigger() | పరీక్ష ప్రయోజనాల కోసం 'show.bs.modal' ఈవెంట్ను అనుకరించడం వంటి j క్వెరీ ఈవెంట్ను ఈ కమాండ్ మాన్యువల్గా ట్రిగ్గర్ చేస్తుంది. వినియోగదారు పరస్పర చర్య లేకుండా మోడల్-సంబంధిత ప్రవర్తనను ప్రేరేపించాల్సిన యూనిట్ పరీక్షలకు ఇది ఉపయోగకరంగా ఉంటుంది. |
expect() | జెస్ట్ టెస్టింగ్ ఫ్రేమ్వర్క్లో భాగంగా, మోడల్ టైటిల్ సరైన డైనమిక్ టెక్స్ట్ని కలిగి ఉందో లేదో తనిఖీ చేయడం వంటి పరీక్ష సమయంలో నిర్దిష్ట షరతులు నెరవేరుతాయని నిర్ధారించడానికి expect() ఉపయోగించబడుతుంది. |
$.ajax() | అసమకాలిక HTTP అభ్యర్థనలను నిర్వహించే j క్వెరీ కమాండ్. ఈ సందర్భంలో, బ్యాకెండ్ సర్వర్ (ఉదా., అద్దె డేటా) నుండి డేటాను పొందేందుకు మరియు మోడల్ ట్రిగ్గర్పై మోడల్ ఫీల్డ్లను డైనమిక్గా అప్డేట్ చేయడానికి ఇది ఉపయోగించబడుతుంది. |
res.json() | క్లయింట్కు తిరిగి JSON ప్రతిస్పందనను పంపే Node.js/Express పద్ధతి. మోడల్ ఇన్పుట్ ఫీల్డ్లను డైనమిక్గా పూరించడానికి అవసరమైన అద్దె డేటాను అందించడానికి ఇది ఇక్కడ ఉపయోగించబడుతుంది. |
data-bs-dismiss | బటన్ను క్లిక్ చేసినప్పుడు మోడల్ను స్వయంచాలకంగా మూసివేయడానికి ఈ బూట్స్ట్రాప్-నిర్దిష్ట లక్షణం ఉపయోగించబడుతుంది. అదనపు జావాస్క్రిప్ట్ కోడ్ అవసరం లేకుండా మోడల్లు తీసివేయబడతాయని ఇది నిర్ధారిస్తుంది. |
.modal-dialog | ఇది మోడల్ నిర్మాణం మరియు స్టైలింగ్ను నిర్వచించే బూట్స్ట్రాప్ తరగతి. డైనమిక్గా అన్వయించబడినప్పుడు అన్ని ఊహించిన ప్రవర్తనతో మోడల్ సరైన ఫార్మాట్లో కనిపించేలా చూసుకోవడం చాలా కీలకం. |
డైనమిక్ బూట్స్ట్రాప్ మోడల్ రెండరింగ్ సమస్యలను పరిష్కరిస్తోంది
పైన అందించిన స్క్రిప్ట్లలో, "ని తప్పించుకుంటూ బూట్స్ట్రాప్ మోడల్ కంటెంట్ను డైనమిక్గా రెండర్ చేయడం లక్ష్యంగుర్తించబడని రకం లోపం: చట్టవిరుద్ధమైన ఆహ్వానం"దోషం. మోడల్ కంటెంట్, ముఖ్యంగా ది మోడల్-శరీరం, టెంప్లేట్ లిటరల్స్ (${ })ని కలిగి ఉంటుంది మరియు బూట్స్ట్రాప్ రెండరింగ్ ఇంజిన్ ద్వారా సరిగ్గా నిర్వహించబడదు. దీన్ని పరిష్కరించడానికి, వినియోగదారు పరస్పర చర్య ఆధారంగా మోడల్ కంటెంట్ను డైనమిక్గా ఇంజెక్ట్ చేయడానికి j క్వెరీ మరియు బూట్స్ట్రాప్ ఈవెంట్ హ్యాండ్లర్ల కలయికను స్క్రిప్ట్ ఉపయోగిస్తుంది. ఈ పరిష్కారానికి కీని ఉపయోగించడం డేటా లక్షణాలు 'పోస్ట్' లేదా 'అప్డేట్' వంటి చర్యలను ట్రాక్ చేయడానికి మరియు మోడల్ బాడీలో సంబంధిత కంటెంట్ను డైనమిక్గా రెండరింగ్ చేయడానికి.
స్క్రిప్ట్లోని ముఖ్యమైన ఆదేశాలలో ఒకటి ఆన్ ('show.bs.modal') ఈవెంట్ శ్రోత, ఇది మోడల్ చూపబడబోతున్నప్పుడు ప్రేరేపించబడుతుంది. ఈ ఈవెంట్ డెవలపర్లను సంబంధిత లక్ష్యాన్ని (ఈ సందర్భంలో, మోడల్ని తెరిచే బటన్) క్యాప్చర్ చేయడానికి మరియు అమలు చేస్తున్న చర్య వంటి ఏదైనా డేటా లక్షణాలను సంగ్రహించడానికి అనుమతిస్తుంది. ఈ లక్షణాలను ఉపయోగించి, స్క్రిప్ట్ కొత్త వినియోగదారుని నమోదు చేయడానికి లేదా ఇప్పటికే ఉన్న వినియోగదారు డేటాను నవీకరించడానికి మోడల్ ఫారమ్ను చూపాలా వద్దా అని నిర్ణయిస్తుంది. ది అనుబంధం() మోడల్-బాడీలోకి డైనమిక్గా మోడల్ కంటెంట్ను ఇంజెక్ట్ చేయడానికి పద్ధతి ఉపయోగించబడుతుంది. మోడల్ చూపడానికి సిద్ధంగా ఉన్న తర్వాత మాత్రమే కంటెంట్ చొప్పించబడిందని నిర్ధారించుకోవడం ద్వారా ఈ పద్ధతి రెండరింగ్ లోపాన్ని తప్పించుకుంటుంది.
స్క్రిప్ట్ కూడా ఉపయోగిస్తుంది ట్రిగ్గర్ రకం 'POST' మరియు 'UPDATE' చర్యల మధ్య తేడాను గుర్తించడానికి వేరియబుల్. ఈ వేరియబుల్ లేబుల్స్, ఇన్పుట్ ఫీల్డ్లు మరియు బటన్లను మార్చడానికి టెంప్లేట్ అక్షరాలలో ఉపయోగించబడుతుంది. ఉదాహరణకు, మోడల్ యొక్క శీర్షిక 'POST' చర్యల కోసం "కొత్త వినియోగదారుని నమోదు చేయండి" నుండి 'అప్డేట్' చర్యల కోసం "వినియోగదారు డేటాను సవరించండి"కి మారుతుంది. ఫీల్డ్లు కొత్త ఎంట్రీల కోసం సవరించగలిగేలా ఉన్నాయని నిర్ధారించుకోవడానికి షరతులతో కూడిన రెండరింగ్ను స్క్రిప్ట్ ఉపయోగించుకుంటుంది, అయితే నవీకరణల కోసం చదవడానికి మాత్రమే. ఈ వ్యత్యాసాలు మోడల్ను డైనమిక్గా మరియు విభిన్న వినియోగదారు చర్యలకు అనుకూలిస్తాయి, అతుకులు లేని వినియోగదారు అనుభవాన్ని అందిస్తాయి.
వెనుక భాగంలో, మేము మోడల్కు అద్దె డేటాను అందించడానికి Node.js మరియు Expressని ఉపయోగించి ఒక ఉదాహరణను అందించాము. సర్వర్ JSON డేటాతో ప్రతిస్పందిస్తుంది, అది AJAX కాల్ ఉపయోగించి పొందబడుతుంది. ఇది మోడల్ను సవరించడం కోసం తెరిచినప్పుడు ఇప్పటికే ఉన్న డేటాతో మోడల్ను నింపడానికి అనుమతిస్తుంది. యొక్క ఉపయోగం AJAX పేజీని రిఫ్రెష్ చేయకుండా మోడల్ నిజ సమయంలో నవీకరించబడుతుందని నిర్ధారిస్తుంది, వినియోగదారు పరస్పర చర్యను సున్నితంగా మరియు ప్రతిస్పందించేలా చేస్తుంది. ఎర్రర్ హ్యాండ్లింగ్ అనేది బ్యాక్-ఎండ్ స్క్రిప్ట్లో కీలకమైన భాగం, చెల్లని డేటా ప్రాసెస్ చేయబడదని మరియు చెల్లుబాటు అయ్యే ఇన్పుట్ మాత్రమే క్లయింట్కు తిరిగి పంపబడుతుందని నిర్ధారిస్తుంది.
డైనమిక్ బూట్స్ట్రాప్ మోడల్ రెండరింగ్ లోపాలను నిర్వహించడం
రెండరింగ్ డైనమిక్ మోడల్ల సమస్యను పరిష్కరించడానికి ఈ పరిష్కారం బూట్స్ట్రాప్తో ఫ్రంట్-ఎండ్ జావాస్క్రిప్ట్పై దృష్టి పెడుతుంది.
// Solution 1: Fixing the Illegal Invocation Error by Rendering Modal with jQuery's append() Method
const manageRentModal = $('#manageRent');
manageRentModal.on('show.bs.modal', event => {
const triggerType = $(event.relatedTarget).data('bs-action');
const rentData = { id: 0, value: 0, coverage: 0 };
let modalContent = `
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title">${triggerType === 'POST' ? 'Register New User' : 'Edit User Data'}</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<form>
<div class="modal-body">
<input type="text" value="${rentData.value}">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</div>`;
$('#manageRent').append(modalContent);
});
మోడల్ రెండరింగ్ కోసం యూనిట్ టెస్టింగ్
ఈ పరీక్ష బూట్స్ట్రాప్ మోడల్ ఎలాంటి చట్టవిరుద్ధమైన ఫంక్షన్లను ప్రారంభించకుండా డైనమిక్గా రెండర్ చేస్తుందని నిర్ధారిస్తుంది.
// Jest Test: Verifying Modal Rendering
test('renders modal correctly', () => {
document.body.innerHTML = `<div id="manageRent"></div>`;
const eventMock = { relatedTarget: { dataset: { bsAction: 'POST' } } };
$('#manageRent').trigger('show.bs.modal', eventMock);
expect(document.querySelector('.modal-title').textContent).toBe('Register New User');
});
బూట్స్ట్రాప్ మోడల్ డేటా కోసం ఆప్టిమైజ్ చేయబడిన బ్యాక్-ఎండ్
మోడల్ రెండరింగ్ కోసం డైనమిక్గా అద్దె డేటాను అందించడానికి ఇది Node.js బ్యాక్-ఎండ్ స్క్రిప్ట్.
const express = require('express');
const app = express();
app.use(express.json());
app.post('/rent-data', (req, res) => {
const rentData = { id: 1, value: 500, coverage: 50 };
res.json(rentData);
});
app.listen(3000, () => console.log('Server running on port 3000'));
మోడల్ డేటా కోసం AJAX అభ్యర్థన
ఈ AJAX స్క్రిప్ట్ మోడల్ ట్రిగ్గర్ చేయబడినప్పుడు బ్యాక్-ఎండ్ నుండి డైనమిక్గా అద్దె డేటాను పొందుతుంది.
$('#manageRent').on('show.bs.modal', function(event) {
$.ajax({
url: '/rent-data',
method: 'POST',
success: function(data) {
$('#manage-value').val(data.value);
$('#manage-coverage').val(data.coverage);
}
});
});
డైనమిక్ బూట్స్ట్రాప్ మోడల్స్లో ఎర్రర్ హ్యాండ్లింగ్ని అన్వేషిస్తోంది
డైనమిక్గా రెండర్ చేయబడిన బూట్స్ట్రాప్ మోడల్స్లోని ఒక అంశం మరింత చర్చకు అర్హమైనది లోపం నిర్వహణ కంటెంట్ రెండరింగ్ మరియు వినియోగదారు ఇన్పుట్ ధ్రువీకరణకు సంబంధించి. మోడల్ డైనమిక్ కంటెంట్తో నిండినప్పుడు, ప్రత్యేకించి ఫారమ్ ఇన్పుట్లతో, వినియోగదారు ఇన్పుట్లు క్లయింట్ మరియు సర్వర్ వైపులా సరిగ్గా ధృవీకరించబడిందని నిర్ధారించుకోవడం చాలా కీలకం. వినియోగదారు ఇన్పుట్ని ప్రామాణీకరించడంలో విఫలమైతే భద్రతాపరమైన లోపాలు లేదా చెల్లని ఫారమ్ సమర్పణలు వంటి సమస్యలకు దారితీయవచ్చు.
బూట్స్ట్రాప్ మోడల్స్ తరచుగా సంక్లిష్ట రూపాలను మరియు వినియోగాన్ని అందిస్తాయి AJAX పేజీని రీలోడ్ చేయకుండా డేటాను సమర్పించడం దాని స్వంత సవాళ్లను పరిచయం చేయవచ్చు. డెవలపర్లు ఫారమ్ ధ్రువీకరణను జాగ్రత్తగా నిర్వహించాలి. ఒక విధానం HTML5 ధ్రువీకరణ పద్ధతులను ఉపయోగిస్తుంది, ఇక్కడ నిర్దిష్ట లక్షణాలు వంటివి ఉంటాయి అవసరం, నమూనా, లేదా పొడవు వినియోగదారులు చెల్లుబాటు అయ్యే డేటాను సమర్పించారని నిర్ధారించుకోవడానికి ఇన్పుట్ ఫీల్డ్లకు వర్తింపజేయబడతాయి. అదనంగా, AJAX ద్వారా సమర్పించేటప్పుడు బ్యాకెండ్ నుండి లోపాలను నిర్వహించడానికి లోపం ప్రతిస్పందనను సంగ్రహించడం మరియు వినియోగదారుని అప్రమత్తం చేయడానికి మోడల్లో తగిన విధంగా ప్రదర్శించడం అవసరం.
డైనమిక్గా రూపొందించబడిన మోడల్లతో వ్యవహరించేటప్పుడు ప్రతిస్పందించే డిజైన్ అవసరం అనేది మరొక ముఖ్యమైన అంశం. బూట్స్ట్రాప్ యొక్క ప్రతిస్పందించే గ్రిడ్ సిస్టమ్ మోడల్ ఫారమ్లను వివిధ స్క్రీన్ పరిమాణాలలో యాక్సెస్ చేయగలదని నిర్ధారిస్తుంది. అయితే, డెవలపర్లు తప్పనిసరిగా పొడవైన ఫారమ్లు లేదా పెద్ద డేటా సెట్లతో సహా డైనమిక్ కంటెంట్ చిన్న వీక్షణపోర్ట్లలో తగిన విధంగా నిర్వహించబడతాయని నిర్ధారించుకోవాలి. మోడల్ను స్క్రోల్ చేయగలిగేలా ఉంచడం లేదా సంక్లిష్ట ఫారమ్ల కోసం ధ్వంసమయ్యే ఫీల్డ్లను ఉపయోగించడం వినియోగదారు అనుభవాన్ని మెరుగుపరుస్తుంది మరియు ఓవర్ఫ్లో సమస్యలను నివారించవచ్చు.
డైనమిక్ బూట్స్ట్రాప్ మోడల్స్ గురించి సాధారణ ప్రశ్నలు
- "చట్టవిరుద్ధమైన ఆహ్వానం" లోపాన్ని మీరు ఎలా నిరోధించగలరు?
- ఉపయోగించడం ద్వారా లోపాన్ని నివారించవచ్చు append() లేదా మోడల్ చూపడానికి సిద్ధంగా ఉన్న తర్వాత మాత్రమే కంటెంట్ను డైనమిక్గా రెండర్ చేయడానికి సారూప్య పద్ధతులు.
- మోడల్లలో ఫారమ్ ఇన్పుట్లను ధృవీకరించడానికి ఉత్తమ మార్గం ఏమిటి?
- వంటి HTML5 ఫారమ్ ధ్రువీకరణ లక్షణాలను ఉపయోగించండి required మరియు pattern క్లయింట్ వైపు ధ్రువీకరణ కోసం. సర్వర్ వైపు, ఫారమ్ సమర్పణలను నిర్వహించేటప్పుడు ఇన్పుట్లను కూడా ధృవీకరించండి.
- వినియోగదారు పరస్పర చర్య ఆధారంగా మీరు మోడల్ కంటెంట్ను ఎలా అప్డేట్ చేయవచ్చు?
- మీరు ఉపయోగించవచ్చు data() మోడల్ను ట్రిగ్గర్ చేసే బటన్పై డైనమిక్ లక్షణాలను నిల్వ చేయడానికి మరియు యాక్సెస్ చేయడానికి మరియు తదనుగుణంగా మోడల్ బాడీలోకి కంటెంట్ను ఇంజెక్ట్ చేయండి.
- మీరు చిన్న స్క్రీన్లపై మోడల్ను ఎలా ప్రతిస్పందించేలా చేస్తారు?
- మోడల్ కంటెంట్ లోపల ఉందని నిర్ధారించుకోండి modal-dialog-scrollable మరియు మొబైల్ ప్రతిస్పందన కోసం బూట్స్ట్రాప్ గ్రిడ్ సిస్టమ్ని ఉపయోగించి లేఅవుట్ని పరీక్షించండి.
- AJAX సమర్పణలలో సర్వర్ నుండి వచ్చిన లోపాలను నిర్వహించడానికి ఉత్తమ మార్గం ఏమిటి?
- ఉపయోగించి లోపం ప్రతిస్పందనను క్యాప్చర్ చేయండి fail() j క్వెరీలో పద్ధతి ajax() ఫంక్షన్ మరియు లోపం సందేశాన్ని మోడల్ లోపల డైనమిక్గా ప్రదర్శించండి.
చివరి ఆలోచనలు:
డైనమిక్ బూట్స్ట్రాప్ మోడల్లు సవాళ్లను అందించగలవు, ప్రత్యేకించి మోడల్ కంటెంట్లో టెంప్లేట్ అక్షరాలను ఉపయోగిస్తున్నప్పుడు. దీన్ని సరిగ్గా నిర్వహించడం వలన "అన్ క్యాట్ టైప్ ఎర్రర్: చట్టవిరుద్ధమైన ఆహ్వానం" వంటి లోపాలను నివారించవచ్చు మరియు వినియోగదారు అనుభవాన్ని మెరుగుపరచవచ్చు.
append(), ప్రతిస్పందించే డిజైన్ను నిర్ధారించడం మరియు నిజ-సమయ నవీకరణల కోసం AJAXని ఉపయోగించడం వంటి పద్ధతులను చేర్చడం సమర్థవంతమైన వ్యూహాలు. డైనమిక్ కంటెంట్ మరియు వినియోగదారులతో సున్నితమైన పరస్పర చర్య రెండింటినీ డెలివరీ చేస్తూ, మోడల్స్ ఉత్తమంగా పని చేసేలా ఈ పద్ధతులు నిర్ధారిస్తాయి.
బూట్స్ట్రాప్ మోడల్ లోపాల కోసం సూచనలు మరియు వనరులు
- ఈ కథనం అధికారిక నుండి అంతర్దృష్టులను ఉపయోగిస్తుంది బూట్స్ట్రాప్ డాక్యుమెంటేషన్ మోడల్స్ ఎలా నిర్మాణాత్మకంగా మరియు డైనమిక్గా అందించబడుతున్నాయో అర్థం చేసుకోవడానికి.
- డైనమిక్ కంటెంట్ను నిర్వహించడం మరియు "చట్టవిరుద్ధమైన ఆహ్వానం" లోపాలను నివారించడం గురించి సమాచారం దీని నుండి సూచించబడింది స్టాక్ ఓవర్ఫ్లో చర్చ బూట్స్ట్రాప్ మోడల్ ఆహ్వాన దోషాలపై.
- బూట్స్ట్రాప్ మోడల్స్లో AJAX ఇంటిగ్రేషన్ మరియు ఈవెంట్ హ్యాండ్లింగ్ నుండి చిట్కాలను ఉపయోగించి వివరించబడ్డాయి j క్వెరీ AJAX డాక్యుమెంటేషన్ మృదువైన సర్వర్ వైపు డేటా మార్పిడి మరియు డైనమిక్ అప్డేట్లను నిర్ధారించడానికి.