Introduktion till AngularJS-evenemang

AngularJS kan beskrivas som ett JavaScript-ramverk som används för att skapa enstaka sidapplikationer (SPA) för såväl mobil som webbutveckling. SPA är en enda sida där mycket av kunskapen fortsätter att vara liknande till stöd för några få bitar data kan anpassas när du klickar på ytterligare kategorier / alternativ. Hela proceduren kan lindra ditt arbete genom att helt enkelt tillåta kostnaden, öka effektiviteten och ladda upp webbsidan snabbare. I det här ämnet kommer vi att lära oss om AngularJS-händelser.

Genom att använda AngularJS kan du arbeta med både direktiv och använda HTML-attribut genom att helt enkelt binda data till HTML med uttryck. AngularJS kan vara en MVC-arkitektur som gör webbapplikationer enkla att bygga från början. AngularJS 1.0 lanserades 2010, och om vi diskuterar idag; den senaste versionen av AngularJS kan vara 1.7.8 som släpptes i mars 2019. AngularJS är dessutom en öppen källkodsram som hanteras av helt enkelt Google med hjälp av en enorm community av programmerare.

Förutsättningar

Innan du går vidare till AngularJS, måste du ha en grundläggande kunskap om

  • JavaScript
  • html
  • CSS

Grunderna i AngularJS

Här är grunderna i AngularJS

direktiven

Prefixet ng betyder AngularJS. ng- kan beskrivas som prefix reserverat för vinkelnyckeldirektiv. För att förhindra kollisioner kan de föreslå att du aldrig använder det exakta ng-prefixet i dina direktiv senare om version av Angular. Ng kan vara en förkortning av Angular.

Instanser av några av direktiven i AngularJS

  • Det ng-nya direktivet kan användas för att producera en ny vinkelapplikation
  • Direktivet om ng-uppdatering uppdaterar dina fantastiska applikationer och även deras beroenden
  • Direktivet ng-app kan användas för att initialisera en AngularJS-applikation.
  • Ng-init- direktivet initialiserar appinformation.

Ng-app-direktivet förklarar också för AngularJS att elementet är en ”entreprenör” med AngularJS-appen.

uttryck

  • Uttryck genom AngularJS kommer att beskrivas inuti dubbla lockiga parenteser: uttryck.
  • För att skriva ett uttryck inom ett direktiv: ng-bind = ”expression”.

Till exempel

Produktion:

Kontrollant

  • Tillämpning av AngularJS kommer att kontrolleras av helt enkelt Controllers.
  • Applikationsstyrenheten kan beskrivas med ett ng-controller-direktiv
  • En styrenhet är känd som ett JS-objekt, konstruerat med en vanlig JS-objektkonstruktör.

Förklara AngularJS-händelser

Olika sorters evenemang i AngularJS

AngularJS är otroligt full av händelser och innehåller en grundmodell för hur du kan lägga till händelselister till HTML. Det underlättar många händelser associerade med mus och tangentbord. De flesta av dessa händelser kommer att läggas på ett HTML-element. Om du har skrivit HTML och även AngularJS-händelser samtidigt, efter att båda händelserna kan köras, betyder detta att en AngularJS-händelse aldrig kommer att skriva över en HTML-händelse.

Några av de väsentliga händelserna är följande.

  • ng-kopia
  • ng-klick
  • ng skuren
  • ng-dblclick
  • ng-keyDown
  • ng-knapptryckning
  • ng-keyUp
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseleave
  • ng-mouse
  • ng-mouseover
  • ng-mouseup
  • ng-oskärpa

Vi kommer att analysera är att kommunicera med händelser.

Angular JS innehåller en global evenemangsbuss som gör att du kan höja evenemang i ett omfång och låta andra områden lyssna efter den händelsen och svara på den. Du kan överföra ytterligare argument med händelsen så att andra lyssnare kan svara på lämpligt sätt på händelsen. Händelser är ganska enkla, men det finns några fåchchas till dem.

Först och främst, lyssna på en händelse som du helt enkelt kallar metoden $ on () på en räckvidd med en parameter för händelsens namn. Då kommer varje händelse med det namnet att avfyra ditt återuppringning. Att åka upp ett evenemang kräver å andra sidan lite planering.

Låt oss säga att jag har en händelse som tas upp här, i Child Scope 1, men vi vill lyssna på den händelsen i Child Scope 2. Tyvärr kan vi inte få det att hända.

Det finns två alternativ för att lyfta upp ett evenemang i Angular JS.

Den första är att ringa omfång. $ -Sändning, vilket höjer händelsen på det ursprungliga omfånget och sedan skickar det ner till alla barnomfattningar.

Det andra alternativet är att ringa räckvidd. $ emit, vilket höjer händelsen på den ursprungliga räckvidden och sedan skickar den upp i omfattningskedjan.

Men det finns inget riktigt globalt sätt att sända från ett barns omfattning. Sättet att få det att hända är att få tag på $ rootScope och ringa $ -sändning på det, vilket skickar det ner till alla barnomfattningar.

Låt oss nu justera vår kod så att den fungerar med händelser i stället för ärvda områden. Så det första problemet som vi märkte att vi vill ha en händelse att lösa är det faktum att här, i katalogkontrollen, denna registerCourse () -metod ringer tryck på höger på schemat. Det är inte dess jobb.

Att lägga till objekt i schemat är inte något som katalogkontrollern bör göra. I stället, vad det borde göra är att anmäla någon annan att en kurs registreras och sedan lita på att andra objekt lägger till korrigeringarna i schemat. Så objektet som borde hantera schemat är naturligtvis schemaläggningskontrollern.

Så låt oss gå till schemaläggaren och lägga till en händelse lyssnare. Vi kommer att ringa vår evenemangskurs registrerad. Den första parametern till en återuppringning till en händelse är ett händelseobjekt och därefter alla ytterligare parametrar som du lägger till när du höjer händelsen.

Så vi kommer att planera på det faktum att den som höjde händelsen kommer att lägga kursen som höjde händelsen också på evenemanget. Sedan kan vi göra logiken som ursprungligen gjordes i metoden registerCourse () här.

Istället för att förlita oss på schemat för att vara på $ -området redan kommer vi att ta bort $ -omfånget och bara sätta in den schemalagda tjänsten. Och eftersom vi lägger in schema här, behöver vi inte längre sätta in det på vår registerkontroller.

Så vi kan ta ut den här linjen här, flytta den upp till vår schema-controller och nu ta det beroendet från registreringskontrollern.

Nu är det fantastiskt att vi har lyssnat på händelsen här, men ingen höjer den händelsen. Platsen här i metoden registerCourse () på katalogkontrollern.

Katalogkontrollern kan inte ta upp en händelse som kan lyssnas på av Schemaläggaren eftersom de är syskon. Så vad vi kommer att behöva göra är att få ett beroende av $ rootScope.

Sedan kan vi ringa $ rootScope. $ Broadcast () höja händelsen som vi letar efter och lägga till den parameter som måste finnas på den händelsen.

Nu har vi en annan sak som vi kan rensa upp. Just här nedan ringer vi $ scope.notify, men vi höjer redan händelsen att vi har registrerat kursen. Vi bör låta någon annan hantera meddelandet när någon kurs är registrerad.

Så låt oss gå tillbaka till vår registeransvarig och lägga till en händelse lyssnare till den.

Och härifrån kan vi ringa koden för att göra meddelandet. Det verkar mycket lämpligare att göra det inom registreringskontrollern, eftersom det där vi definierar metoden meddelandet ().

Låt oss kolla denna utgång i webbläsaren och se hur den fungerar.

Våra förändringar har fungerat bra.

Låt oss nu titta på koden och analysera fördelarna och nackdelarna med att använda händelser. Den första fördelen som vi märkte att vi gillar är att logiken i var och en av kontrollerna har något att göra med den kontrollenheten.

Katalogkontrollern har logik för att höja händelsen när någon klickar på knappen Registrera kurs och logiken om att markera en registrerad kurs. Schemat har logiken för att lägga till objekten i schemat och Registreringscontrollern har logiken om aviseringar. På grund av det har vi inte controller som sätter in tjänst som de inte har något att göra med.

Dessutom är vår rotkontroll inte full av beroenden som den inte har något att göra med. Det finns dock några nackdelar. Alla som hanterar ett evenemang kan avbryta evenemanget. Detta kan leda till dåliga buggar.

Om någon särskild handlare avbryter en händelse och en lyssnare som fortfarande behöver höra om den händelsen inte har behandlats. Vi kopplar vår controller till dessa händelser.

Nackdelen med händelser är att vi använder en sträng för händelsens namn och det är svårt att förhindra händelsens namnkonflikter.

Det enda skyddet finns en bra namnstrategi för evenemangsnamn.

Slutsats - AngularJS Events

  • Eliminerar servertillståndet
  • Aktiverar kunskap om inhemsk app
  • Lägger enkelt till logik i JavaScript
  • Kräver innovativ kunskapsinformation samt procedurer

Rekommenderade artiklar

Detta är en guide till AngularJS Events. Här diskuterar vi Basics of AngularJS och förklarar AngularJS-händelsen med exemplen. Du kan också titta på följande artiklar för att lära dig mer -

  1. AngularJS-enhetstestning
  2. AngularJS Architecture
  3. AngularJS-direktiv
  4. Karriär i AngularJS
  5. Topp 5 HTML-händelseattribut med exempel
  6. Guide till olika JavaScript-händelser

Kategori: