Hvordan bruke "ng-modell" i AngularJS med EKSEMPLER

Hva er ng-modell i AngularJs?

ng-model er et direktiv i Angular.JS som representerer modeller og dets primรฆre formรฅl er รฅ binde "synet" til "modellen".

Anta for eksempel at du รธnsket รฅ presentere en enkel side for sluttbrukeren som den som vises nedenfor, som ber brukeren skrive inn "Fornavn" og "Etternavn" i tekstboksene. Og sรฅ ville du sรธrge for at du lagrer informasjonen som brukeren har lagt inn i datamodellen din.

Du kan bruke ng-modelldirektivet til รฅ tilordne tekstboksfeltene "Fornavn" og "Etternavn" til datamodellen din.

ng-modelldirektivet vil sikre at dataene i "visningen" og den til "modellen" din holdes synkronisert hele tiden.

ng-modell i AngularJS

ng-modellens attributt

Som diskutert i introduksjonen til dette kapittelet, brukes ng-model-attributtet for รฅ binde dataene i modellen din til visningen som presenteres for brukeren.

ng-modellattributtet brukes til,

  1. Bindende kontroller som input, tekstomrรฅde og markeringer i visningen inn i modellen.
  2. Angi en valideringsatferd โ€“ for eksempel kan en validering legges til en tekstboks som bare numeriske tegn kan legges inn i tekstboksen.
  3. ng-model-attributtet opprettholder tilstanden til kontrollen (Med tilstand mener vi at kontrollen og dataene er bundet til รฅ alltid holdes synkronisert. Hvis verdien av dataene vรฅre endres, vil den automatisk endre verdien i kontrollen og omvendt)

Hvordan bruke ng-modellen

1) Tekstomrรฅde

Tekstomrรฅde-taggen brukes til รฅ definere en flerlinjers tekstinntastingskontroll. Tekstomrรฅdet kan inneholde et ubegrenset antall tegn, og teksten gjengis i en skrift med fast bredde.

Sรฅ la oss nรฅ se pรฅ et enkelt eksempel pรฅ hvordan vi kan legge til ng-modelldirektivet til en tekstomrรฅdekontroll.

I dette eksemplet รธnsker vi รฅ vise hvordan vi kan sende en flerlinjestreng fra kontrolleren til visningen og knytte den verdien til tekstomrรฅdekontrollen.

Tekstomrรฅde i ng-modell

<!DOCTYPE html>
<html>
<head>
	<meta chrset="UTF 8">
	<title>Event Registration</title>
	<link rel="stylesheet" href="css/bootstrap.css"/>
</head>
<body >
<h1> Guru99 Global Event</h1>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>

<div ng-app="DemoApp" ng-controller="DemoCtrl">
	<form>
		&nbsp;&nbsp;&nbsp;Topic Description:<br> <br>
		&nbsp;&nbsp;&nbsp;
	<textarea rows="4" cols="50" ng-model="pDescription"></textarea><br><br> 
	</form>
</div>

<script>
	var app = angular.module('DemoApp',[]);
	app.controller('DemoCtrl', function($scope){
		$scope.pDescription="This topic looks at how Angular JS works \nModels in Angular JS"});
</script>

</body>
</html>

Code Forklaring:

  1. Ocuco ng-modell direktiv brukes til รฅ feste medlemsvariabelen kalt "pDescription" til "tekstomrรฅde"-kontrollen. "sDescription"-variabelen vil faktisk inneholde teksten, som vil bli sendt videre til tekstomrรฅdekontrollen. Vi har ogsรฅ nevnt 2 attributter for tekstomrรฅdekontrollen som er rader=4 og kols=50. Disse attributtene har blitt nevnt slik at vi kan vise flere tekstlinjer. Ved รฅ definere disse attributtene vil tekstomrรฅdet nรฅ ha 4 rader og 50 kolonner slik at det kan vise flere tekstlinjer.
  2. Her knytter vi medlemsvariabelen til scope-objektet kalt "pDescription" og sette en strengverdi til variabelen.
  3. Legg merke til at vi setter /n bokstavelig i strengen slik at teksten kan vรฆre pรฅ flere linjer nรฅr den vises i tekstomrรฅdet. Den bokstavelige /n deler teksten i flere linjer slik at den kan gjengis i tekstomrรฅdekontrollen som flere tekstlinjer.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Tekstomrรฅde i ng-modell

Fra utgangen,

  • Det kan tydelig sees at verdien som er tildelt pDescription-variabelen som en del av scope-objektet ble sendt til tekstomrรฅdekontrollen.
  • Deretter har den blitt vist nรฅr siden er lastet inn.

2) Inndataelementer

ng-modelldirektivet kan ogsรฅ brukes pรฅ inngangselementene som tekstboksen, avmerkingsbokser, radioknapper, etc.

La oss se pรฅ et eksempel pรฅ hvordan vi kan bruke ng-modellen med "tekstboks" og "avkrysningsboks"-inndatatypen.

Her vil vi ha en tekstinndatatype som vil ha navnet ยซGuru99โ€, og det vil vรฆre to avmerkingsbokser, รฉn som vil vรฆre merket som standard og den andre som ikke vil vรฆre merket.

Inndataelementer i ng-modell

<!DOCTYPE html>
<html>
<head>
	<meta chrset="UTF 8">
	<title>Event Registration</title>
	<link rel="stylesheet" href="css/bootstrap.css"/>
	<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
</head>
<body >
<h1> Guru99 Global Event</h1>

<div ng-app="DemoApp" ng-controller="DemoCtrl">
	<form>
		&nbsp;&nbsp;&nbsp;Topic Description:<br> <br>
		&nbsp;&nbsp;&nbsp;
        
		Name : <input type="text" ng-model="pname"><br>
		&nbsp;&nbsp;&nbsp;
		Topic : <br>&nbsp;&nbsp;&nbsp;
		<input type="checkbox" ng-model="Topic.Controller">Controller<br>&nbsp;&nbsp;&nbsp;
		<input type="checkbox" ng-model="Topic.Models">Models
	</form>
	</div>

<script>
	var app = angular.module('DemoApp',[]);
	app.controller('DemoCtrl', function($scope){
		$scope.pname="Guru99";
        
		$scope.Topic =
		{
			Controller:true,
			Models:false
		};     });
</script>

</body>
</html>

Code Forklaring:

  1. Ocuco ng-modell direktiv brukes til รฅ knytte medlemsvariabelen kalt ยซpnameยป til tekstkontrollen av inputtypen. Variabelen ยซpnameยป vil inneholde teksten til ยซGuru99โ€ som vil bli sendt videre til tekstinndatakontrollen. Merk at medlemsvariabelen kan gis et hvilket som helst navn.
  2. Her definerer vi vรฅr fรธrste avkrysningsboks "Controllers" som er knyttet til medlemsvariabelen Topics.Controllers. Avmerkingsboksen vil merkes for denne kontrollkontrollen.
  3. Her definerer vi vรฅr fรธrste avkrysningsboks "Modeller" som er knyttet til medlemsvariabelen Topics.Models. Avmerkingsboksen vil ikke merkes for denne kontrollkontrollen.
  4. Her legger vi til medlemsvariabelen kalt ยซpNameยป og setter inn strengverdien ยซGuru99. "
  5. Vi erklรฆrer en medlemsmatrisevariabel kalt "Emner" og gir den to verdier, den fรธrste er "true" og den andre er "false". Sรฅ nรฅr den fรธrste avmerkingsboksen fรฅr verdien sann, vil avmerkingsboksen vรฆre merket for denne kontrollen, og pรฅ samme mรฅte, siden den andre verdien er usann, vil ikke avmerkingsboksen merkes for denne kontrollen.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Inndataelementer i ng-modell

Fra utgangen,

  • Det kan tydelig sees at verdien som er tilordnet pName-variabelen er ยซGuru99 "
  • Siden den fรธrste sjekkverdien er ยซsannยป den bestod, er avmerkingsboksen merket for ยซKontrollereยป-avmerkingsboksen. Likeledes siden den andre verdien er usann, er ikke avkrysningsboksen merket for "Modeller"-avmerkingsboksen.

3) Velg element fra rullegardinmenyen

ng-modelldirektivet kan ogsรฅ brukes pรฅ utvalgselementet og brukes til รฅ fylle ut listeelementene i utvalgslisten.

La oss se pรฅ et eksempel pรฅ hvordan vi kan bruke ng-modellen med select input type.

Her vil vi ha en tekstinndatatype som vil ha navnet ยซGuru99โ€, og det vil vรฆre en valgliste med to listeelementer: ยซKontrollerยป og ยซModellerยป.

Velg element fra rullegardinmenyen i ng-modellen

<!DOCTYPE html>
<html>
<head>
	<meta chrset="UTF 8">
	<title>Event Registration</title>
	<link rel="stylesheet" href="css/bootstrap.css"/>
	<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
</head>
<body >
<h1> Guru99 Global Event</h1>

<div ng-app="DemoApp" ng-controller="DemoCtrl">
	<form>
		&nbsp;&nbsp;&nbsp;Topic Description:<br> <br>
		&nbsp;&nbsp;&nbsp;
        
		Name : <input type="text" ng-model="pName" value="Guru99"><br>
		&nbsp;&nbsp;&nbsp;
		Topic : <br>&nbsp;&nbsp;&nbsp;
        
		<select ng-model="Topics">
		<option>{{Topics.option1}}</option>
		<option>{{Topics.option2}}</option>
		</select>
	</form>
	</div>

<script>
	var app = angular.module('DemoApp',[]);
	app.controller('DemoCtrl', function($scope){
	$scope.pName="Guru99";
        
		$scope.Topics =
		{
			option1 : "Controller",
			option2 : "Module"
		};     });
</script>

</body>
</html>
  1. Ocuco ng-modell direktiv brukes til รฅ knytte medlemsvariabelen kalt "Emner" til valgtypekontrollen. Inne i valgkontrollen, for hvert av alternativene, legger vi ved medlemsvariabelen Topics.option1 for det fรธrste alternativet og Topics.option2 for det andre alternativet.
  2. Her definerer vi vรฅr Topics-arrayvariabel som inneholder 2 nรธkkelverdi-par. Det fรธrste paret har verdien "Kontrollere" og det andre har verdien "Modeller". Disse verdiene vil bli sendt for รฅ velge input-tag i visningen. Hvis koden utfรธres vellykket, vil fรธlgende utdata vises.

Utgang:

Velg element fra rullegardinmenyen i ng-modellen

Fra utdataene kan man se at verdien som er tilordnet pName-variabelen er ยซGuru99โ€, og vi kan se at den valgte inngangskontrollen har alternativene ยซKontrollereยป og ยซModellerยป.

Sammendrag

  • Modeller i Angular JS er representert av ng-modelldirektivet. Hovedformรฅlet med dette direktivet er รฅ binde synet til modellen. Hvordan bygge en enkel kontroller ved รฅ bruke direktivene ng-app, ng-controller og ng-modell.
  • ng-modelldirektivet kan kobles til en "tekstomrรฅde"-inndatakontroll og flerlinjestrenger kan sendes fra kontrolleren til visningen.
  • ng-modelldirektivet kan kobles til inndatakontroller som tekst- og avkrysningsbokskontroller for รฅ gjรธre dem mer dynamiske under kjรธring.
  • ng-modelldirektivet kan ogsรฅ brukes til รฅ fylle ut en utvalgsliste med alternativer som kan vises for brukeren.

Oppsummer dette innlegget med: