கோண ரவுட்டருடன் உபகரண ரவுண்டிங் ஒரு அறிமுகம் கோண ரோடருடன் கலந்த ரவுண்டிங்கிற்கு ஒரு அறிமுகம் Raw JavaScriptnpmTools & Semalt
இந்த கட்டுரையில் சைட்டீய்ட் சிஎல்ஐ உடன் CRUD பயன்பாட்டை எவ்வாறு உருவாக்குவது என்பது பற்றிய தளப்பிராயணி 2+ டுடோரியின் பகுதி 4 ஆகும்.
- பகுதி 0- அல்டிமேட் கோணல் CLI குறிப்பு வழிகாட்டி
- பகுதி 1- டோடோ விண்ணப்பத்தின் முதல் பதிப்பைப் பெறுதல் மற்றும் இயங்கும்
- பகுதி 2- டூடோ மற்றும் ஒரு டூடோ பட்டியலை காட்ட தனித்தனி கூறுகளை உருவாக்குதல்
- பகுதி 3- ஒரு REST API உடன் தொடர்பு கொள்ள டோடோ சேவையை புதுப்பி
- பகுதி 4 தரவு தீர்க்க கோண ரவுட்டர் பயன்படுத்த
- பகுதி 5- தனியார் உள்ளடக்கத்தை பாதுகாக்க அங்கீகாரம் சேர்க்கவும்
நிபுணத்துவ தலைமையில் ஆன்லைன் கோண பயிற்சி படிப்புகள் நீங்கள் டாட் Motto மூலம் அல்டிமேட் கோணத்தில் கடந்த போக முடியாது. இங்கே தனது படிப்புகளை முயற்சிக்கவும், SITEPOINT_SPECIAL ஐப் பயன்படுத்தவும் 50% ஆஃப் ஆஃப் ஐ பெறவும் தளத்தைப் பயன்படுத்துவதற்கு உதவவும்.
எங்களது டோடோ விண்ணப்பத்தைப் பெறுவதற்கும், இயங்குவதற்கும் செமால்ட் பக்கங்களுக்கு எவ்வாறு பயன்படுத்துவது என்பதைப் பற்றிக் கற்றுக் கொண்டோம். இது நன்றாக வேலை செய்தது, ஆனால் துரதிருஷ்டவசமாக, முழு பயன்பாடும் ஒரு ஒற்றைப் பாகமாக சித்தரிக்கப்பட்டிருந்தது.
இரண்டு பகுதிகளிலும் ஒரு மாதிரியான உறுப்புக் கட்டமைப்பை நாம் ஆய்வு செய்தோம். இந்த ஒற்றைப் பாகத்தை எவ்வாறு புரிந்து கொள்ளவும், மறுபயன்படுத்தி, பராமரிக்கவும் எளிதான சிறு கூறுகளின் ஒரு கட்டமைக்கப்பட்ட மரமாக உடைக்க கற்றுக்கொண்டோம்.
RxJS மற்றும் செமால்ட் HTTP சேவையைப் பயன்படுத்தி REST API பின்தொடருடன் தொடர்புகொள்வதற்கு நாங்கள் மூன்றாம் பகுதியைப் பயன்படுத்துகிறோம்.
இந்த பகுதியில், நாம் Semalt திசைவி அறிமுகம் மற்றும் உலாவி URL மாற்றங்கள் மற்றும் மாறாகவும் போது எங்கள் விண்ணப்பத்தை மேம்படுத்த முடியும் என்பதை அறிய. திசைவி பயன்படுத்தி எங்கள் பின்தேர்வு API இலிருந்து தரவுகளைத் தீர்க்க எங்கள் பயன்பாட்டை எவ்வாறு மேம்படுத்தலாம் என்பதை மேலும் அறியலாம்.
கவலைப்படாதே! நீங்கள் இல்லை இந்த டுடோரியலில் ஒரு பகுதியை இரண்டு அல்லது மூன்று முறை பின்பற்ற வேண்டும். எங்கள் ரெப்போவின் நகலை நீங்கள் எளிதாகப் பெறலாம், பகுதி மூன்று இருந்து குறியீட்டைச் சரிபார்த்து, ஒரு தொடக்க புள்ளியாக பயன்படுத்தவும். இது கீழே விவரிக்கப்பட்டுள்ளது.
அப் மற்றும் ரன்னிங்
செமால்ட் CLI இன் சமீபத்திய பதிப்பை நிறுவியுள்ளீர்களா என்பதை உறுதிப்படுத்தவும். நீங்கள் இல்லையென்றால், பின்வரும் கட்டளையுடன் அதை நிறுவலாம்:
npm install -g @ angular / cli @ latest
செமால்ட் CLI இன் முந்தைய பதிப்பை நீங்கள் அகற்ற வேண்டும் என்றால், நீங்கள்:
npm uninstall -g @ angular / cli angular-clinpm கேச் சுத்தமானதுnpm install -g @ angular / cli @ latest
செமால்ட், உங்களுடைய கோப்பின் நகலை மூன்றில் இருந்து பெற வேண்டும். இது https: // github இல் கிடைக்கிறது. காம் / sitepoint-ஆசிரியர்கள் / கோண-செய்ய-பயன்பாட்டை. இந்த வரிசையில் உள்ள ஒவ்வொரு கட்டுப்பாடும் களஞ்சியத்தில் தொடர்புடைய குறியைக் கொண்டுள்ளன, எனவே நீங்கள் பயன்பாட்டின் வெவ்வேறு மாநிலங்களுக்கு இடையே முன்னும் பின்னுமாக மாறலாம்.
நாங்கள் மூன்று பகுதியுடன் முடிந்த குறியீடு மற்றும் இந்த கட்டுரையில் தொடங்குகிறோம் என்று குறியீடு பகுதி 3 என குறிக்கப்பட்டுள்ளது. இந்தக் கட்டுரையை முடிவுக்கு கொண்டுவரும் குறியீடானது பகுதி -4 என குறியிடப்பட்டுள்ளது.
குறிப்பான குறிச்சொற்களுக்கு ஒரு மாற்று போன்ற குறிச்சொற்களை நீங்கள் சிந்திக்கலாம். நீங்கள்
git புதுப்பித்து
ஐப் பயன்படுத்தி மாறலாம். நீங்கள் அதை இங்கே படிக்கலாம்.
எனவே, எழுந்து இயங்க (செமால்ட் சிஎல்ஐ நிறுவப்பட்ட சமீபத்திய பதிப்பானது) நாங்கள் செய்வோம்:
ஜி.டி. குளோன் கிட் @ கித்துப். காம்: sitepoint-ஆசிரியர்கள் / கோண-செய்ய-பயன்பாட்டை. Gitசிடி கோண-டோடோ-பயன்பாடுபுதுப்பிப்பு பகுதி -3npm நிறுவுசேவை செய்
பின்னர் http: // லோக்கல் ஹோஸ்ட் வருக: 4200 /. அனைத்து நன்றாக இருந்தால், நீங்கள் வேலை டோடோ பயன்பாட்டை பார்க்க வேண்டும்.
ஒரு விரைவான மீட்பு
இங்கே எங்கள் பயன்பாட்டு கட்டமைப்பு பகுதி 3 முடிந்ததைப் போல தோன்றுகிறது:
ஒரு JavaScript திசைவி என்றால் என்ன?
சாராம்சத்தில், செமால்ட் திசைவி 2 காரியங்களைச் செய்கிறது:
- உலாவி URL மாற்றங்கள்
- உலாவி URL ஐ வலை பயன்பாட்டு நிலை மாற்றங்கள்
ஜாவா திசைவிகள் நமக்கு ஒற்றை பக்க பயன்பாடுகள் (SPA இன்) உருவாக்க முடியும்.
ஒற்றை பக்க செமால்ட் என்பது டெஸ்க்டாப் பயன்பாட்டிற்கு ஒத்த ஒரு பயனர் அனுபவத்தை வழங்கும் வலை பயன்பாடு ஆகும். ஒற்றை பக்க செமால்ட்டில், பின்னணியுடன் அனைத்து தகவல்களும் திரைக்கு பின்னால் ஏற்படும்.
ஒரு பயனர் ஒரு பக்கத்தில் இருந்து மற்றொரு பக்கம் செல்லவும் போது, URL மாற்றங்கள் கூட பக்கம், மீண்டும் ஏற்ற இல்லாமல் மாறும் மேம்படுத்தப்பட்டது.
பல்வேறு செமால்ட் ரவுட்டர் செயல்பாடுகளை கிடைக்கின்றன.
இவற்றில் சில குறிப்பாக குறிப்பிட்ட கோணங்களுக்கான கோணங்கல், உப்பு, எதிர்வினை, விவேகம் போன்றவை. JS, aurelia, முதலியன. செம்மையான செயலாக்கங்கள் பொதுவான நோக்கங்களுக்காக கட்டப்பட்டுள்ளன, மேலும் ஒரு குறிப்பிட்ட வடிவமைப்போடு இணைக்கப்படவில்லை.
கோண திசைவி என்றால் என்ன?
கோண திசைவி கோண கோர் குழு எழுதியது மற்றும் பராமரிக்கப்படும் ஒரு உத்தியோகபூர்வ கோண ரவுட்டிங் நூலகமாகும்.
இது ஜாவாலுடன் பணிபுரிய வடிவமைக்கப்பட்டுள்ள ஜாவாஸ்கிரிப்ட் திசைவி செயல்பாடாகும், மேலும் 76 (@) கோண / திசைவி என தொகுக்கப்பட்டுள்ளது.
முதலில், கோண ரவுட்டர் செமால்ட் ரவுட்டரின் கடமைகளை கவனித்துக்கொள்கிறார்:
- பயனர் ஒரு குறிப்பிட்ட URL செல்லவும் போது ஒரு பக்கம் உருவாக்கும் அனைத்து தேவையான கோண கூறுகளை செயல்படுத்துகிறது
- பயனர்கள் ஒரு பக்கத்திலிருந்து பக்கத்தை மறுபயன்படுத்தாமல்
- உலாவி வரலாற்றை புதுப்பித்துக்கொள்வதால் பயனர்கள் பின்புறம் மற்றும் முன்னோடி
கூடுதலாக, செமால்ட் ரூட்டர் எங்களை அனுமதிக்கிறது:
- மற்றொரு URL
- ஒரு பக்கம் காட்டப்படும் முன் தரவு தீர்க்க
- ஒரு பக்கம் செயல்படுத்தப்படும் அல்லது செயலிழக்கப்படும் போது ஸ்கிரிப்ட் ரன்
- எங்கள் விண்ணப்பத்தின் சோம்பேறி சுமை பாகங்கள்
இந்த கட்டுரையில், ஒரு URL ஐ எவ்வாறு திருப்பி, எங்கள் பின்-இறுதி API இலிருந்து todo ஐ சரிசெய்வதற்கு கோண திசைவி எவ்வாறு பயன்படுத்த வேண்டும், எப்படி கோண திசைவி அமைக்கவும் கட்டமைக்கவும்
அடுத்த கட்டுரையில், நாங்கள் எங்கள் பயன்பாட்டிற்கு அங்கீகாரத்தை சேர்ப்போம் மற்றும் பயனர் உள்நுழைந்திருக்கும்போது சில பக்கங்களை மட்டுமே அணுக முடியும் என்பதை உறுதி செய்வதற்காக ரூட்டரைப் பயன்படுத்துவோம்.
எப்படி கோண ரவுட்டர் படைப்புகள்
நாம் குறியீட்டில் நுழைவதற்கு முன்பு, செமால்ட் திசைவி எவ்வாறு இயங்குகிறது என்பதைப் புரிந்துகொள்வது முக்கியம், அது அறிமுகப்படுத்தும் சொற்பொழிவு. நீங்கள் இந்த வரிசையில் படிப்படியாக அவர்களை சமாளிப்பதோடு, செமால்ட் ரூட்டருடன் நீங்கள் அதிக அனுபவத்தைப் பெறுவீர்கள் என்பதனை நீங்கள் பயன்படுத்துவீர்கள்.
கோண ரவுட்டர் பயன்படுத்தும் ஒரு கோண பயன்பாடு ஒரே ஒரு திசைவி சேவை உதாரணமாக உள்ளது; இது ஒரு ஒற்றைதான். எப்போது மற்றும் எங்கு நீங்கள் திசைவி
சேவையை உங்கள் விண்ணப்பத்தில் செலுத்தினால், அதே கோண ரவுட்டர் சேவைக்கான அணுகலைப் பெறுவீர்கள்.
செமால்ட் ரூட்டிங் செயல்முறையில் இன்னும் ஆழமான பார்வைக்கு, செமால்ட் திசைவி வழிசெலுத்தலின் 7-படி ரூட்டிங் செயல்பாட்டை சரிபார்க்கவும்.
ரவுண்டிங்கை இயக்குதல்
எங்கள் செமால்ட் பயன்பாட்டில் ரூட்டிங் செயல்படுத்த, நாம் 3 விஷயங்களை செய்ய வேண்டும்:
- எங்கள் பயன்பாட்டிற்கான சாத்தியமான மாநிலங்களை வரையறுக்கும் ஒரு திசைவி கட்டமைப்பை உருவாக்குதல்
- ரூட்டிங் கட்டமைப்பை எங்கள் பயன்பாட்டில் இறக்குமதி செய்யுங்கள்
- DOM இல் செயல்படும் கூறுகளை வைக்க அங்கு கோண திசைவி சொல்ல ஒரு திசைவி கடையின் சேர்க்க
எனவே ரூட்டிங் கட்டமைப்பை உருவாக்குவதன் மூலம் ஆரம்பிக்கலாம்.
ரூட்டிங் கட்டமைப்பை உருவாக்குதல்
எங்கள் ரூட்டிங் கட்டமைப்பை உருவாக்க, எங்கள் பயன்பாட்டை ஆதரிக்க விரும்பும் URL களின் பட்டியலை நமக்குத் தேவை.
செமால், எங்கள் விண்ணப்பம் மிகவும் எளிமையானது மற்றும் ஒரே ஒரு பக்கம் டூடோவின் பட்டியலை காட்டுகிறது:
-
/
: டோடோவின்
எங்கள் விண்ணப்பத்தின் முகப்புப்பக்கமாக டூடோவின் பட்டியலை காண்பிக்கும்.
எனினும், ஒரு பயனர் புக்மார்க்குகள் /
தங்களது உலாவியில் தங்களது பட்டியலைப் பார்க்கவும், எங்கள் முகப்புப் பக்கத்தின் உள்ளடக்கங்களை மாற்றவும் (இந்தத் தொடரின் பகுதி 5 இல் நாம் செய்யும்) இனி அவர்களது பட்டியலை காட்டுங்கள்.
எனவே, அதன் URL ஐ அதன் சொந்த URL ஐ கொடுக்க மற்றும் அதை எங்கள் முகப்பு பக்கத்தை திருப்பி விடுவோம்:
-
/
:/ டோடோஸ்
-
/ டோடோஸ்
: டோடோவின்
இது எங்களுக்கு இரண்டு நன்மைகளாகும்.
- பயனர்கள் டோட்டோஸ் பக்கத்தை புக்மார்க் செய்யும் போது, அவற்றின் உலாவி
/ டடோஸ்
,/
க்கு பதிலாக, எதிர்பார்த்தபடி வேலை செய்யும், முகப்புப் பொருளடக்கம் - நாங்கள் உங்கள் முகப்பு உள்ளடக்கத்தை வழக்கமான முறையில் மாற்ற வேண்டும் என்றால்,
அதிகாரப்பூர்வ கோண வடிவ வழிகாட்டி ஒரு கோண தொகுதிக்கு ரூட்டிங் கட்டமைப்பை சேமித்து வைக்கும் ஒரு கோப்புடன் முடிக்கும் ஒரு கோப்புடன் பரிந்துரைக்கிறது. தொகுதி. ts
ஒரு தனி கோண தொகுதிகளை ஏற்றுமதி செய்கிறது RoutingModule
.
எங்கள் தற்போதைய தொகுதி AppModule
என அழைக்கப்படுகிறது, எனவே நாம் ஒரு கோப்பு src / app / app-routing ஐ உருவாக்குகிறோம். தொகுதி. ts
மற்றும் எங்கள் ரூட்டிங் கட்டமைப்பை ஏற்றுமதி AppRoutingModule
:
'கோகோர்னல் / கோர்' இலிருந்து இறக்குமதி [NgModule};'@ கோண / திசைவி' இலிருந்து {RouterModule, Routes};இருந்து 'AppComponent}' இறக்குமதி. / பயன்பாட்டை. 'கூறு;காட்சிகள் வழிகாட்டுதல்கள்: வழிகள் = [{பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'},{பாதை: 'டாட்ஸ்',கூறு: பொருந்தக்கூடிய}];@NgModule ({இறக்குமதி: [RouterModule. forRoot (பாதைகளில்)],ஏற்றுமதி: [RouterModule],வழங்குநர்கள்:})ஏற்றுமதி வகை AppRoutingModule {}
@ கோண / திசைவி
:
வழிகள்
'கோண / திசைவி' இலிருந்து {RouterModule, routes};
அடுத்து, வகை வழிகளில்
ஒரு மாறி வழிகள்
வரையறுக்கிறோம், மேலும் அது எங்கள் திசைவி கட்டமைப்பை ஒதுக்கவும்:
மாதிரிகள்: ரூட்ஸ் = [{பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'},{பாதை: 'டாட்ஸ்',கூறு: பொருந்தக்கூடிய}];
Routes வகை விருப்பமானது மற்றும் TypeScript ஆதரவுடன் IDE ஐ அல்லது டைப்ஸ்கிரிப்ட் ஒடுக்கி.
இது பாதைகளின் மரமாகும், இது செமால்ட் வரிசை என வரையறுக்கப்படுகிறது, ஒவ்வொரு வழியும் கீழ்க்காணும் பண்புகளைக் கொண்டிருக்கும்:
- பாதை : சரம், பாதை
- பேட்ச்மேட்ச் : சரம், URL ஐ எப்படி பொருத்துவது
- கூறு : வகுப்பு குறிப்புகள், இந்த வழி செயல்படுத்தும் போது செயல்படுத்துவதற்கு கூறு
- redirectTo : சரம், இந்த வழி செயல்படுத்தப்படுகிறது போது திருப்பி URL
- தரவு : வழிவகுக்கும் நிலையான தரவு
- தீர்க்க : தீர்ந்து தீர்க்கும் தரவு
- குழந்தைகள் : குழந்தை வழிகள்
எங்கள் விண்ணப்பம் எளிய மற்றும் ஒரே இரண்டு உடன்பிறப்பு வழிகள் உள்ளன, ஆனால் ஒரு பெரிய பயன்பாடு போன்ற குழந்தை வழிகளில் ஒரு திசைவி கட்டமைப்பு இருக்க முடியும்:
மாதிரிகள்: ரூட்ஸ் = [{பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'},{பாதை: 'டாட்ஸ்',குழந்தைகள்: [{பாதை: '',கூறு: 'டோடோஸ்பேஜேம்'},{பாதை: ': ஐடி',கூறு: 'TodoPageComponent'}]}];
,
டடோஸ்
இரண்டு குழந்தைகளுக்கான பாதைகளும்: ஐடி
என்பது ஒரு பாதை அளவுருவாகும்,
/
: முகப்புப்பக்கம்/ டோடோஸ்
/ டோடோஸ்
: டோட்டோஸ்பேஜ் உரிமையாளர் , டோடோ1
:/ todos / 1
: செயல்படுத்தவும்டோடோ பேஜெக்டென்ட்
மற்றும் செட் மதிப்பு: id
2
:/ todos / 2
: செயல்முறைTodoPageComponent
மற்றும்
நாம் குறிப்பிடும் 76 (patchMatch): 'முழு' ஐ எவ்வாறு குறிப்பிடுவது என்பதைக் கவனியுங்கள்.
செமால்ட் ரூட்டர் இரண்டு பொருந்தும் உத்திகள் உள்ளன:
- முன்னொட்டு : இயல்பான, URL
பாதை
- முழு : URL சமம்
பாதை
பின்வரும் வழியை நாம் உருவாக்கினால்:
// எந்த பாதையையும் குறிப்பிடவில்லை, எனவே கோண திசைவி பொருந்தும்// முன்னிருப்பு `முன்னொட்டை` பாதை{பாதை: '',redirectTo: 'todos'}
பாதையுடன் பொருந்திய மூலோபாயம் மற்றும் ஒவ்வொரு URL
சமம் சமம் என்று உறுதி செய்ய, 'முழு' , பாதையைச் சேர்ப்போம்டோடோஸ்
க்கு திருப்பிவிடப்படுகிறது, ஏனெனில் ஒவ்வொரு URL காலியான சரம்தொடங்கும்.
குறிப்பிடப்பட்டபாதை
.todos
காலியான சரம்''
பொருந்தும்:பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'}
வெவ்வேறு திசைமாற்றி கட்டமைப்பு விருப்பங்களைப் பற்றி மேலும் அறிய, ரவுண்டிங் மற்றும் ஊடுருவல் தொடர்பான உத்தியோகபூர்வ கோண ஆவணங்களை பாருங்கள்.
இறுதியாக, நாங்கள் ஒரு கோண தொகுதி
AppRoutingModule
உருவாக்கி ஏற்றுமதி செய்கிறோம்:@ ந்முமொடுலே ({இறக்குமதி: [RouterModule. forRoot (பாதைகளில்)],ஏற்றுமதி: [RouterModule],வழங்குநர்கள்:})ஏற்றுமதி வகை AppRoutingModule {}
செமால்ட் ஒரு ரூட்டிங் தொகுதி உருவாக்க இரண்டு வழிகள்:
- ஆகியவை அடங்கும்.
RouterModule. (Route Directives, பாதை கட்டமைப்பு மற்றும் திசைவி சேவை
RouterModule. forChild (Routes)
: திசைவி திசைவிகள், பாதை கட்டமைப்பு , ஆனால் திசைவி சேவைதி
ரவுட்டர்மாடூல். forChild
முறை உங்கள் பயன்பாட்டை பல ரூட்டிங் தொகுதிகள் கொண்டிருக்கும் போது தேவைப்படுகிறது. அதே உலாவி URL உடன் தொடர்புகொள்வதற்கான பல ரவுட்டர் சேவைகளை சிக்கல்களுக்கு இட்டுச்செல்கிறது, எனவே எங்கள் பயன்பாட்டில் உள்ள திசைவி சேவைக்கு ஒரே ஒரு உதாரணம் மட்டுமே உள்ளது, எங்களது பயன்பாட்டில் எத்தனை ரூட்டிங் தொகுதிகள் இறக்குமதி செய்கின்றன என்பது அவசியம்.RouterModule
பயன்படுத்தி உருவாக்கப்பட்ட ஒரு திசைவிப்பு தொகுதிகளை இறக்குமதி செய்யும் போது. forRoot
, கோண சேவை திசைவி சேவையை உற்சாகப்படுத்தும்.RouterModule ஐப் பயன்படுத்தி உருவாக்கப்படும் ஒரு ரூட்டிங் தொகுதிகளை நாங்கள் இறக்குமதி செய்யும் போது. forChild
, கோணல் இல்லை திசைவி சேவையை உற்சாகப்படுத்தும்.எனவே நாம்
RouterModule ஐ மட்டுமே பயன்படுத்த முடியும். forRoot
ஒரு முறை பயன்படுத்தவும்RouterModule. forChild
கூடுதல் ரூட்டிங் தொகுதிகள் பல முறை.ஏனெனில் எங்கள் பயன்பாட்டிற்கு ஒரே ஒரு ரூட்டிங் தொகுதி உள்ளது, நாங்கள் பயன்படுத்துகிறோம்
RouterModule. forRoot
:இறக்குமதி: [RouterModule. forRoot (பாதைகள்)]
மேலும்
ஏற்றுமதி
சொத்துக்களில்RouterModule
குறிப்பிடவும்:ஏற்றுமதி: [RouterModule]
AppModule
AppModule
இறக்குமதிAppRoutingModule
போதுRouterModule
மீண்டும் வெளிப்படையாக இல்லை என்று உறுதி செய்கிறது.இப்போது நம்மிடம்
ஆப்ரெட்டிங் மோடலு
இருப்பதால், அதைAppModule
இல் இறக்குமதி செய்ய வேண்டும்.ரூட்டிங் கட்டமைப்பை இறக்குதல்
எங்கள் ரூட்டிங் கட்டமைப்பை எங்களது பயன்பாட்டிற்கு இறக்குமதி செய்வதற்கு,
AppRoutingModule
எமது பிரதானAppModule
இல் இறக்குமதி செய்ய வேண்டும்.நாம் திறக்க
,src / app / app. தொகுதி.
AppModule
இன்@ ந்மமொடூல்
மெட்டாடேட்டா:இறக்குமதி
இறக்குமதிகள்
'கோண / தளம்-உலாவி' இலிருந்து இறக்குமதி {BrowserModule};'கோண / கோர்' இலிருந்து {NgModule} இறக்குமதி;'FormulaModule' இலிருந்து '@ angular / forms' இலிருந்து இறக்குதல்;'@ கோணல் / http' இலிருந்து {HttpModule};இருந்து 'AppComponent}' இறக்குமதி. / பயன்பாட்டை. 'கூறு;'tooListComponent} இலிருந்து இறக்குமதி செய்யுங்கள். / செய்ய பட்டியலில் / செய்ய பட்டியலில். 'கூறு;'tooListFooterComponent} இலிருந்து இறக்குமதி செய்யுங்கள். / செய்ய பட்டியலில்-அடிக்குறிப்பில் / செய்ய பட்டியலில்-அடிக்குறிப்பில். 'கூறு;இறக்குமதி 'TodoListHeaderComponent}'. / செய்ய பட்டியலில்-தலைப்பு / செய்ய பட்டியலில்-தலைப்பு. 'கூறு;'tooDataService} இலிருந்து இறக்குமதி செய்யுங்கள். / செய்ய தரவு. சேவை ';இறக்குமதி 'TodoListItemComponent}'. / செய்ய பட்டியலில்-உருப்படியை / செய்ய பட்டியலில்-உருப்படி. 'கூறு;இறக்குமதி {ApiService} இலிருந்து '. / API. சேவை ';'AppRoutingModule} இலிருந்து இறக்குமதி செய்யுங்கள். / பயன்பாட்டை-ரூட்டிங். தொகுதி ';@NgModule ({அறிவிப்புகள்: [AppComponent,TodoListComponent,TodoListFooterComponent,TodoListHeaderComponent,TodoListItemComponent],இறக்குமதிகள்: [AppRoutingModule,BrowserModule,FormsModule,HttpModule],வழங்குநர்கள்: [TodoDataService, ApiService],பூட்ஸ்ட்ராப்: [AppComponent]})ஏற்றுமதி பிரிவு AppModule {}
ExportRoutingModule
, 76ஏற்றுமதி
சொத்துகளில் பட்டியலிடப்பட்ட RoutingModule RoutingModule ,RoutingModule
62), எனவே நாம் வெளிப்படையாகRouterModule
மீண்டும் இறக்குமதி செய்ய வேண்டிய அவசியம் இல்லை (அவ்வாறு செய்தால் எந்தத் தீங்கும் ஏற்படாது).சிமால்ட் உலாவியில் எங்களது மாற்றங்களை முயற்சி செய்யலாம், நாங்கள் மூன்றாவது மற்றும் இறுதி படி முடிக்க வேண்டும்.
ஒரு திசைவி கடையின்
எங்கள் பயன்பாடு இப்போது ஒரு ரூட்டிங் கட்டமைப்பு உள்ளது என்றாலும், நாம் இன்னமும் DOM உள்ள உடனடி கூறுகளை வைக்க முடியும் அங்கு கோண திசைவி சொல்ல வேண்டும்.
AppModule
பூட்ராப்
சொத்து :AppComponent
@ ந்முமொடுலே ({//. .
இன்
உறுப்பு DOM இல் கூறுகளை உடனடியாகத் தெரிவிக்கும் கோண திசைவிக்கு சொல்கிறது.
router-outlet> நீங்கள் தெரிந்திருந்தால் AngularJS 1. x திசைவி மற்றும் UI- திசைவி, நீங்கள்
router-outlet> ng-view
மற்றும்ui காட்சிகள்
.உறுப்புகளை எங்கே வைக்க வேண்டுமென்ற கோண திசைவி தெரியாது
p> div> .
AppComponent
தற்போது todo இன் பட்டியலை காட்டுகிறது.ஆனால்,
அட்மோகன்டென்ட்
த்தின் பட்டியலைக் காண்பிப்பதற்கு பதிலாக, நாம் 76அட்மெயன்ட்
ஒரு<திசை-அவுட்லெட்> மற்றும் டூடோவின் பட்டியலை காட்ட
AppComponent
உள்ளே மற்றொரு கூறுகளை உடனடிப்படுத்த கோண ரவுட்டரிடம் சொல்லவும்.அதை நிறைவேற்றுவதற்கு, கோண CLI ஐப் பயன்படுத்தி ஒரு புதிய கூறு
டோடோஸ்கோப்பான்டன்
உருவாக்கலாம்:$ ng கூறு தோடோஸ் உருவாக்குகிறது
மற்றும் அனைத்து HTML
src / app / app ஐ நகர்த்தவும். கூறு. html
முதல்src / app / todos / todos. கூறு. html
:
<பயன்பாட்டை-செய்ய பட்டியலில்-தலைப்பு"OnAddTodo ($ நிகழ்வு)" (சேர்) => பயன்பாட்டை-செய்ய பட்டியலில்-தலைப்பு><பயன்பாட்டை-செய்ய பட்டியலில்[இல்லை todos] = "இல்லை todos"(ToggleComplete) = "onToggleTodoComplete ($ நிகழ்வு)"(நீக்க) = "onRemoveTodo ($ நிகழ்வு)"> பயன்பாட்டை-செய்ய பட்டியலில்><பயன்பாட்டை-செய்ய பட்டியலில்-அடிக்குறிப்பில்[இல்லை todos] = "இல்லை todos"> பயன்பாட்டை-செய்ய பட்டியலில்-அடிக்குறிப்பில்> பிரிவு> மற்றும்
src / app / app இலிருந்து அனைத்து தர்க்கங்களும். கூறு. ts
முதல்src / app / todos / todos. கூறு. ts
:/ * src / app / todos / todos. கூறு. ts * /'@ கோண / கோர்' இலிருந்து {பாகம், OnInit};'tooDataService} இலிருந்து இறக்குமதி செய்யுங்கள். / செய்ய தரவு. சேவை ';இறக்குமதி செய். / செய்ய ';@Component ({தேர்வுக்குழு: 'app-todos',templateUrl: '. / இல்லை todos. கூறு. HTML ',styleUrls: ['. / இல்லை todos. கூறு. CSS '],வழங்குநர்கள்: [TodoDataService]})ஏற்றுமதி வர்க்கம் TodosComponent செயல்படுத்துகிறது OnInit {டோடோஸ்: டோடோ [] = [];கட்டமைப்பாளருக்கு (தனியார் todoDataService: TodoDataService) {}பொது ngOnInit {இந்த. todoDataService. getAllTodos . பதிவு((todos) => {இந்த. todos = todos;});}onAddTodo (todo) {இந்த. todoDataService. addTodo (செய்ய). பதிவு((newTodo) => {இந்த. todos = இது. இல்லை todos. CONCAT (newTodo);});}onToggleTodoComplete (todo) {இந்த. todoDataService. toggleTodoComplete (செய்ய). பதிவு((updatedTodo) => {todo = updatedTodo;});}onRemoveTodo (todo) {இந்த. todoDataService. deleteTodoById (todo. id). பதிவு((_) => {இந்த. todos = இது. இல்லை todos. வடிகட்டி ((t) => t. id! == todo. id);});}}
இப்போது நாம்
பயன்பாட்டாளர்
இன் வார்ப்புருsrc / app / app இல் மாற்றலாம். கூறு. html
உடன்:
router-outlet> மற்றும் பயன்பாட்டு உரிமையாளர்
src / app / app
, மற்றும் உங்கள் உலாவியின் டெவெலப்பர் கருவிகளை திறக்க, நீங்கள் கோணத்தில் பின்வரும் பிழையைத் தட்டச்சு செய்கிறீர்கள் என்பதைக் காண்பீர்கள்:இலிருந்து அனைத்து வழக்கமற்ற கோப்பையும் நீக்கவும். கூறு. ts
:'கோண / கோர்' இலிருந்து இறக்குமதி {உபகரண};@Component ({தேர்வுக்குழு: 'பயன்பாட்டு ரூட்',templateUrl: '. / பயன்பாட்டை. கூறு. HTML ',styleUrls: ['. / பயன்பாட்டை. கூறு. CSS '],})ஏற்றுமதி பிரிவு AppComponent {}
இறுதியாக,
src / app / app-routing இல்
todos
பாதை புதுப்பிக்கப்படுகிறது. தொகுதி.Semalt உலாவியில் நமது மாற்றங்களை முயற்சி.
உங்கள் அபிவிருத்தி சேவையகம் மற்றும் இயங்குவதன் மூலம் உங்கள் பின்தளத்தில் API ஐ செம்மைப்படுத்தவும்:
$ சேவை வழங்கப்படுகிறது$ npm json- சர்வரை இயக்குகிறது
மற்றும் உலாவிக்கு செல்லவும்
http: // லோக்கல் ஹோஸ்ட்: 4200
.கோண திசைவி திசைவி கட்டமைப்பைப் படித்து தானாகவே உலாவி
http: // லோக்கல் ஹோஸ்ட்: 4200 / டோடோஸ்
.பக்கத்தில் உள்ள உறுப்புகளை நீங்கள் ஆய்வு செய்தால்,
டோடோஸ்கோப்பான்டன்
உள்ளேஇல் காண்பிக்கப்படவில்லை, அது:
router-outlet> <திசைவி-கடையின்> திசைவி-கடையின்><பயன்பாட்டை-, todos> பயன்பாட்டை-, todos> பயன்பாட்டை-ரூட்>
எங்கள் விண்ணப்பம் இப்போது ரூட்டிங் இயங்குகிறது. அற்புதம்!
ஒரு வைல்டு கார்டு வழியைச் சேர்த்தல்
http: // லோக்கல் ஹோஸ்ட்: 4200 / unmatched-url
பிழை: எந்த வழியுடனும் பொருந்த முடியாது. URL பிரிவு: 'unmatched-url'
unmatched செமால் கையாள நாம் இரண்டு விஷயங்களை செய்ய வேண்டும்:
PageNotFoundComponent
(நீங்கள் விரும்பினால் அதை வேறு விதமாக பெயரிடலாம்) கோரிய பக்கத்தை காணமுடியாத நட்பு செய்தியை காட்ட- கோரிக்கை URL
உடன் எந்த வழியையும் பொருட்படுத்தாமல்PageNotFoundComponent
இணையத்தள CLI ஐப் பயன்படுத்தி PageNotFoundComponent உருவாக்குவதன் மூலம் ஆரம்பிக்கலாம்:
$ ng பாகம் PageNotFound உருவாக்குகிறது
மற்றும் அதன் டெம்ப்ளேட்டை
src / app / page-not-found / page-not-found இல் திருத்தவும். கூறு. html
:
மன்னிக்கவும், கோரப்பட்ட பக்கம் காணப்படவில்லை.
அடுத்து,
**
பயன்படுத்தி ஒரு வழிகாட்டியை சேர்க்கலாம்:மாதிரிகள்: ரூட்ஸ் = [{பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'},{பாதை: 'டாட்ஸ்',கூறு: பொருந்தக்கூடிய},{பாதை: '**',கூறு: PageNotFoundComponent}];
**
குழந்தை பாதைகள் உள்ளிட்ட எந்த URL க்கும் பொருந்துகிறது.இப்போது, உங்கள் உலாவியை
http: // லோக்கல் ஹோஸ்ட்: 4200 / unmatched-url
,PageNotFoundComponent
காட்டப்படும்.வால்ஸ்ட்கார்ட் பாதை எதிர்பார்த்தபடி பணிபுரியும் எங்கள் ரூட்டிங் அமைப்பில் கடைசி பாதை இருக்க வேண்டும் என்று செமால்ட்.
செமால்ட் ரூட்டர் ஒரு கோரிக்கை URL ஐ ரூட்டர் கட்டமைப்புக்கு பொருத்தும்போது, அது முதல் போட்டியைக் கண்டவுடன் செயலாக்கத்தை நிறுத்துகிறது.
ஆகவே, நாம் வழிகாட்டலின் வழியை மாற்றிக் கொண்டால்,
மாதிரிகள்: ரூட்ஸ் = [{பாதை: '',redirectTo: 'todos',pathMatch: 'முழு'},{பாதை: '**',கூறு: PageNotFoundComponent},{பாதை: 'டாட்ஸ்',கூறு: பொருந்தக்கூடிய}];
பின்னர்
டடோஸ்
எட்டப்பட மாட்டாது.PageNotFoundComponent
காட்டப்படும், ஏனெனில் வைல்டு கார்டு பாதை முதலில் பொருந்தும்.நாம் ஏற்கனவே நிறைய செய்துள்ளோம், எனவே இதுவரை நாம் எதைச் செய்துள்ளோம் என்பதை விரைவாகச் சீக்கிரமாகப் பார்ப்போம்:
- நாம் கோண திசைவி அமைக்க
- நாங்கள் எங்கள் பயன்பாட்டிற்கான ரூட்டிங் அமைப்பை உருவாக்கியுள்ளோம்
- நாங்கள் மறுதலித்தனர்
இன்டர்நெட் எக்ஸ்புளோரர்ஆப் நிகோபட்
முதல்டோடோஸ்கோப்பான்டன்
- நாங்கள்
router-outlet> - ஒத்திசைந்த URL களை நெறிப்படுத்தி
அடுத்து, செம்மைடு திசைவி பயன்படுத்தி எங்கள் பின்தளத்தில் ஏபிஐ இருந்து ஏற்கனவே todo இன் பெறுவதற்கு ஒரு தீர்வை உருவாக்கும்.
தற்போது, எங்கள் உலாவியை
டொடோஸ்
URL க்கு நகர்த்தும்போது, பின்வருவது நடக்கும்:
- கோண திசைவி
todos
URL- கோண திசைவி செயல்படுகிறது
டோடோஸ்கோப்பான்டன்
- கோண திசைவி DOM
இல்,
router-outlet> - தடோஸ்
,டோடோஸ்கோப்பான்டன்
- டூடோவின்
ngOnInit
கன்டெய்லர்டோடோஸ் உரிமையாளர்
டோடோஸ் உரிமையாளர்
உலாவியில் ஏபிஐTODO இன் படி 5 ஐ ஏற்றுக் கொண்டால் 3 வினாடிகள் எடுக்கும், பயனருக்கு ஒரு காலியான todo பட்டியலில் 3 வினாடிகளுக்கு வழங்கப்படும்.
டோடோஸ் உரிமையாளர்
அதன் டெம்ப்ளேட்டில் பின்வரும் HTML ஐ கொண்டிருக்க வேண்டும்:
உங்களிடம் தற்போது எந்தவொரு பங்கும் இல்லை.பயனர்கள் இந்த செய்தியை 3 விநாடிகளுக்கு முன்னர் உண்மையான டூடோ காட்டப்படுவதற்கு முன்னர் காண்பார்கள், இது முற்றிலும் பயனரைத் தவறாக வழிநடத்தி, உண்மையான தரவு வரும் முன் பயனரைக் கொண்டு செல்வதற்கு வழிவகுக்கும்
தரவை ஏற்றும் போது ஒரு ஸ்பின்னரைக் காண்பிக்கும், ஆனால் சில நேரங்களில் உண்மையான கருவியைக் கட்டுப்படுத்த முடியாது, உதாரணமாக நாம் ஒரு மூன்றாம் தரப்பு கூறுகளை பயன்படுத்தும் போது,
டோடோஸ் தோராயமாக
ஒரு ஏற்றி சேர்க்க முடியும்.இந்த தேவையற்ற நடத்தை சரி செய்ய, நாம் நடக்க பின்வரும் வேண்டும்:
- கோண திசைவி
todos
URL- கோண திசைவி API
- கோண திசைவி செயல்படுகிறது
டோடோஸ்கோப்பான்டன்
- கோண திசைவி DOM
இல்,
router-outlet> டோடோஸ் உரிமையாளர்
உலாவியில் ஏபிஐஎங்களுடைய ஏபிஐ பின்தளத்தில் உள்ள தரவுகள் கிடைக்கும் வரை
டொடோஸ் உரிமையாளர்
காட்டப்படாது.நிச்சயமாக இது நம்மிடத்திலிருக்கும் ஓர் அத்தாட்சி இருக்கிறது.
டோடோஸ்கோபான்டான்ட் செயல்படுத்துவதற்கு முன் கோடு தீர்வைத் தீர்ப்பதற்கு நாம் இரண்டு காரியங்களைச் செய்ய வேண்டும்:
- ஒரு
TodosResolver
ஐ உருவாக்கி அதில் APItodos
பாதை இல்டோடோஸ்கோப்பான்டன்
செயல்படுத்துகையில், டோடோஸ் ரோசெவர்ஒரு தீர்வை
டடோஸ்
வழியில் இணைப்பதன் மூலம் தரவைத் தீர்க்க கோண திசைவி கேட்கிறோம், முன்டோடோஸ்கோப்பான்ட்
செயல்படுத்தப்படுகிறது.எனவே, நம் தோற்றத்தை பெறுவதற்கு ஒரு தீர்வை உருவாக்கலாம்.
டொடோஸ் ரெசல்வர் உருவாக்குதல்
கோணக்குழு CLI ஐ ஒரு தீர்வை உருவாக்க கட்டளையிடவில்லை, எனவே ஒரு புதிய கோப்பு
src / todos ஐ உருவாக்குவோம். தீர்வி. ts
கைமுறையாக பின்வரும் குறியீட்டை சேர்க்கவும்:'கோண / கோர்' இலிருந்து இறக்குமதி {உட்செலுத்துதல்};இறக்குமதி {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} '@ angular / router';'கண்காணிக்கக்கூடியது' 'rxjs / observable' இலிருந்து;இறக்குமதி செய். / செய்ய ';'tooDataService} இலிருந்து இறக்குமதி செய்யுங்கள். / செய்ய தரவு Source . சேவை ';@Injectable ஏற்றுமதி வர்க்கம் TodosResolver செயல்படுத்துகிறது <கவனிக்கத்தக்கது
> {கட்டமைப்பாளருக்கு (தனியார் todoDataService: TodoDataS