Top 55 de întrebări și răspunsuri la interviu MVC (PDF)
Întrebări și răspunsuri la interviu MVC pentru cei proaspăt
1) Ce este Model-View-Controller?
MVC este un model de arhitectură software pentru dezvoltarea aplicațiilor web. Este gestionat de trei obiecte, Model, View și Controller.
👉 Descărcare PDF gratuită: Întrebări și răspunsuri la interviu MVC
2) Ce reprezintă Model-View-Controller într-o aplicație MVC?
Într-un model MVC,
- Modele Usi– Reprezintă domeniul datelor aplicației. Cu alte cuvinte, logica de afaceri a unei aplicații este conținută în model și este responsabilă pentru menținerea datelor.
- Vizualizare– Reprezintă interfața cu utilizatorul cu care comunică utilizatorii finali. Pe scurt, toată logica interfeței cu utilizatorul este conținută în View.
- Controlor- Controlerul este cel care răspunde la acțiunile utilizatorului. Pe baza acțiunilor utilizatorului, controlerul respectiv răspunde în cadrul modelului și alege o vedere pentru a reda care afișează interfața cu utilizatorul. Logica de intrare de utilizator este conținută în controler.
3) Denumiți ansamblul pentru a defini MVC
Cadrul MVC este definit în ansamblul System.Web.Mvc.
4) Care sunt diferitele tipuri de returnare ale unei metode de acțiune a controlorului
Iată diferite tipuri de returnare ale unei metode de acțiune a controlerului:
- Vizualizați rezultatul
- JavaRezultatul scriptului
- Rezultatul redirecționării
- Rezultat JSON
- Rezultat de conținut
5) Care este diferența dintre adăugarea de rute la o aplicație de formular web și o aplicație MVC?
Pentru a adăuga rute la o aplicație de formular web, folosim metoda MapPageRoute() din clasa RouteCollection, în timp ce pentru a adăuga rute la o aplicație MVC, folosim metoda MapRoute().
6) Care sunt cele două moduri de a adăuga constrângeri la o rută?
Cele două metode de a adăuga constrângeri la o rută sunt
- Folosiți expresii regulate
- Utilizați un obiect care implementează Interfața IRouteConstraint
7) Care sunt avantajele MVC?
- MVC vă segrega proiectul într-un segment diferit și devine ușor să lucreze pentru dezvoltatori
- Este ușor să editați sau să schimbați o parte a proiectului dvs. care beneficiază de un cost mai mic de dezvoltare și întreținere a proiectului
- MVC vă face proiectul mai sistematic
- Reprezintă o separare clară între logica afacerii și logica prezentării
- Fiecare obiect MVC are responsabilități diferite
- Dezvoltarea progresează în paralel
- Ușor de gestionat și întreținut
- Toate clasele și obiectele sunt independente unele de altele
8) Ce fac funcțiile „beforeFilter()”, „beforeRender” și „afterFilter” în Controller?
- beforeFilter(): Această funcție rulează înainte de fiecare acțiune din controler. Este locul potrivit pentru a verifica dacă există o sesiune activă sau pentru a inspecta permisiunile utilizatorului.
- beforeRender(): Această funcție este apelată după logica acțiunii controlerului, dar înainte ca vizualizarea să fie redată. Această funcție nu este folosită des, dar poate fi necesară dacă apelați manual render() înainte de sfârșitul unei anumite acțiuni.
- afterFilter(): Această funcție este apelată după fiecare acțiune a controlerului și după ce randarea este efectuată. Este ultima metodă de control care rulează.
9) Care este rolul componentelor Prezentare, Abstracție și Control în MVC?
Iată rolul componentelor Prezentare, Abstracție și Control în MVC:
- Prezentare: Este reprezentarea vizuală a unei abstractizări specifice în cadrul aplicației
- Abstracție: Este funcționalitatea domeniului de afaceri din cadrul aplicației
- Control: Este o componentă care păstrează consistența între abstractizarea din sistem și prezentarea acestora către utilizator, pe lângă comunicarea cu alte controale din sistem.
10) Care sunt dezavantajele modelului MVC?
Iată câteva dezavantaje importante ale modelului MVC:
- Modelul modelului este puțin complex.
- Ineficiența accesului la date în vedere.
- Cu o interfață de utilizator modernă, este dificil să utilizați MVC.
- Aveți nevoie de mai mulți programatori pentru dezvoltarea paralelă.
- Sunt necesare cunoștințe tehnologice multiple.
11) Care este rolul „ActionFilters” în MVC?
În MVC, „ActionFilters” vă ajută să executați logica în timp ce acțiunea MVC este executată sau se execută.
12) Care sunt pașii pentru execuția unui proiect MVC?
Pașii pentru execuția unui proiect MVC includ:
- Primiți prima cerere pentru aplicație
- Efectuați rutarea
- Creați un handler de solicitare MVC
- Creați controler
- Executați controlerul
- Invocați acțiune
- Executați rezultatul
13) Ce este rutarea și trei segmente?
Rutarea vă ajută să decideți o structură URL și să mapați adresa URL cu controlerul.
Cele trei segmente care sunt importante pentru rutare sunt:
- ControllerName
- ActionMethodName
- Parametru
14) Cum se face rutarea în modelul MVC?
Există un grup de rute numit RouteCollection, care constă din rute înregistrate în aplicație. Metoda RegisterRoutes înregistrează rutele din această colecție. O rută definește un model URL și un handler de utilizat dacă cererea se potrivește cu modelul.
Primul parametru al metodei MapRoute este numele rutei. Al doilea parametru va fi modelul cu care se potrivește URL-ul. Al treilea parametru ar putea fi valorile implicite pentru substituenți dacă nu sunt determinate.
15) Cum puteți naviga de la o vizualizare la alta folosind un hyperlink?
Utilizând metoda „ActionLink”, așa cum se arată în codul de mai jos. Codul de mai jos va crea o adresă URL simplă care vă ajută să navigați la controlerul „Acasă” și să invocați acțiunea „GotoHome”.
Restrângeți / Copiați codul
<%= Html.ActionLink("Home", "Gotohome") %>
Întrebări și răspunsuri la interviu MVC pentru cei cu experiență
16) Cum sunt menținute sesiunile în MVC?
Sesiunile pot fi menținute în MVC în trei moduri: tempdata, viewdata și viewbag.
17) Care este diferența dintre date Temp, Date View și View Bag?
- Date temp: Ajută la menținerea datelor atunci când treceți de la un controler la altul.
- Vizualizați datele: Ajută la menținerea datelor atunci când treceți de la controler la vizualizare.
- Vezi geanta: Este un înveliș dinamic în jurul datelor de vizualizare.
18) Ce este o vedere parțială în MVC?
Vizualizarea parțială în MVC redă o parte din conținutul vizualizării. Este util în reducerea dublării codului. În termeni simpli, vizualizarea parțială permite redarea unei vederi în vizualizarea părinte.
19) Cum puteți implementa Ajax în MVC?
În MVC, Ajax poate fi implementat în două moduri
- biblioteci Ajax
- jquery
20) Care este diferența dintre „ActionResult” și „ViewResult”?
„ActionResult” este o clasă abstractă, în timp ce „ViewResult” este derivat din clasa „AbstractResult”. „ActionResult” are o serie de clase derivate precum „JsonResult”, „FileStreamResult” și „ViewResult”.
„ActionResult” este cel mai bun dacă obțineți diferite tipuri de vizualizări în mod dinamic.
21) Cum puteți trimite rezultatul înapoi în format JSON în MVC?
Pentru a trimite rezultatul înapoi în format JSON în MVC, puteți utiliza clasa „JSONRESULT”.
22) Care este diferența dintre vizualizare și vizualizare parțială?
Iată diferența dintre vizualizare și vizualizare parțială
Vizualizare | Vedere parțială |
---|---|
Conține pagina de aspect | Nu conține pagina de aspect |
Înainte ca orice vizualizare să fie randată, este redată pagina de început vizualizări | Vizualizarea parțială nu se verifică pentru un viewstart.cshtml. Nu putem pune cod comun pentru o vizualizare parțială în viewStart.cshtml.page |
Vizualizarea poate avea etichete de marcare precum body, html, head, title, meta etc. | Vizualizarea parțială este concepută special pentru a reda în cadrul vizualizării și tocmai din această cauză nu constă nici un marcaj |
Vizualizarea nu este ușoară în comparație cu vizualizarea parțială | Putem trece o vizualizare obișnuită la metoda RenderPartial |
23) Care sunt tipurile de rezultate în MVC?
În MVC, există douăsprezece tipuri de rezultate în care clasa „ActionResult” este clasa principală, în timp ce cele 11 sunt subtipurile lor:
- ViewResult
- PartialViewResult
- EmptyResult
- RedirectResult
- RedirectToRouteResult
- JsonResult
- JavaScriptResult
- ContentResult
- FileContentResult
- FileStreamResult
- FilePathResult
24) Care este importanța NonActionAttribute?
Toate metodele publice ale unei clase de controler sunt tratate ca metodă de acțiune dacă doriți să preveniți această metodă implicită, atunci trebuie să atribuiți metoda publică cu NonActionAttribute.
25) Care este utilizarea rutei implicite {resource}.axd/{*pathinfo}?
Ruta implicită împiedică transmiterea către controler a cererilor pentru un fișier de resurse web, cum ar fi Webresource.axd sau ScriptResource.axd.
26) Care este ordinea filtrelor care sunt executate, dacă sunt implementate mai multe filtre?
Ordinea filtrului ar fi astfel:
- Filtre de autorizare
- Filtre de acțiune
- Filtre de răspuns
- Filtre de excepție
27) Ce filtre ASP.NET sunt executate în final?
În final, „Filtrele de excepție” sunt executate.
28) Care sunt extensiile de fișiere pentru vizualizările de ras?
Pentru vizualizările de ras, extensiile de fișiere sunt
- .cshtml: dacă C# este limbajul de programare
- .vbhtml: Dacă VB este limbajul de programare
29) Care sunt cele două moduri de a adăuga constrângeri la o rută?
Două metode pentru adăugarea de constrângeri la traseu sunt:
- Folosind expresii regulate
- Folosind un obiect care implementează interfața IRouteConstraint
30) Care sunt două cazuri în care rutarea nu este implementată sau necesară?
Două cazuri în care rutarea nu este necesară sunt
- Când se găsește un fișier fizic care se potrivește cu modelul URL
- Când rutarea este dezactivată pentru un model URL
Întrebări de interviu MVC pentru 5 ani de experiență
31) Care sunt caracteristicile MVC?
Iată caracteristicile MVC:
- Testabilitate ușoară și fără frecare. Cadru extrem de testabil, extensibil și conectabil.
- Oferă control deplin asupra HTML-ului, precum și asupra adreselor URL
- Utilizează funcțiile existente furnizate de ASP.NET, JSP, Django etc.
- Separare clară a logicii: model, vedere, controler. Separarea sarcinilor aplicației prin logica de afaceri, logica Ul și logica de intrare.
- Rutarea URL pentru URL-uri prietenoase cu SEO. Mapare puternică a adreselor URL pentru adrese URL inteligibile și care pot fi căutate.
- Suport pentru Dezvoltare bazată pe teste (TDD).
32) Care sunt exemplele reale ale MVC?
Iată un exemplu real de MVC:
- Să presupunem că mergi la un restaurant. Nu vei merge la bucătărie și vei pregăti mâncare pe care cu siguranță le poți face acasă. În schimb, mergi acolo și aștepți să vină chelnerul.
- Acum chelnerul vine la tine și tu doar comanzi mâncarea. Chelnerul nu știe cine ești și ce vrei, doar a notat detaliile comenzii tale de mâncare.
- Apoi, chelnerul se mută în bucătărie. În bucătărie, chelnerul nu vă pregătește mâncarea.
- Bucătarul vă pregătește mâncarea. Chelnerului i se dă comanda dumneavoastră împreună cu numărul de masă.
- Cook, apoi îți pregătește mâncarea. El folosește ingrediente pentru a găti mâncarea. Să presupunem că ai comandat un sandviș cu legume. Apoi are nevoie de pâine, roșii, cartof, ardei ardei, ceapă, mușcătură, brânză etc., pe care sursele de la frigider.
- În cele din urmă, Cook predă mâncarea chelnerului. Acum este treaba chelnerului să mute această mâncare în afara bucătăriei.
- Acum chelnerul știe ce mâncare ați comandat și cum este servită.
În acest caz,
View= You Waiter= Controller Cook= Model Refrigerator= Data
33) Care este diferența dintre 3 niveluri Architectură și MVC Architectură?
Iată o diferență între 3 niveluri Architectură și MVC Architectura:
Parametru | 3 nivele Architectură | MVC Architectură |
---|---|---|
Comunicarea | Acest tip de model de arhitectură nu comunică niciodată direct cu stratul de date. | Toate straturile comunică direct folosind topologia triunghiulară. |
Folosire | 3-tier: utilizat pe scară largă în aplicațiile web în care clientul, nivelurile de date și middleware rulează pe platforme separate fizic. | Utilizat în general pe aplicațiile care rulează pe o singură stație de lucru grafică. |
34) Cum puteți utiliza arhitectura MVC în JSP?
Următorul exemplu arată utilizarea arhitecturii MVC în JSP:
- Luăm exemplul unui formular cu două variabile, „e-mail” și „parolă”, care este stratul nostru de vizualizare.
- Odată ce utilizatorul introduce e-mail și parola și dă clic pe submit, atunci acțiunea este transmisă în mvc_servlet unde sunt transmise e-mailul și parola.
- Acest mvc_servlet este stratul de controler. Aici, în mvc_servlet, cererea este trimisă obiectului bean, care acționează ca un strat model.
- Valorile de e-mail și parole sunt setate în bean și stocate pentru alte scopuri.
- Din bean, valoarea este preluată și afișată în stratul de vizualizare.
Mvc_example.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
Mvc_servlet.java
package demotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
TestBean.java
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
Mvc_success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
35) Cum funcționează MVC în primăvară?
Iată cum funcționează MVC în primăvară:
- DispatcherServlet primește o solicitare.
- După aceea, DispatcherServlet comunică cu HandlerMapping. De asemenea, revocă controlorul asociat cu acea cerere specifică.
- Controllerul procesează această solicitare apelând metodele de serviciu și un obiect ModelAndView este returnat de DispatcherServlet.
- Numele vizualizării este trimis la un ViewResolver pentru a găsi vizualizarea reală de invocat.
- După aceea, DispatcherServlet este transmis la View pentru a reda rezultatul.
- Prin utilizarea datelor modelului, vizualizarea redă și trimite înapoi rezultatul înapoi utilizatorului.
36) Care sunt punctele importante de reținut la crearea unei aplicații MVC?
Iată câteva puncte importante de reținut când creați o aplicație MVC:
- Trebuie să rețineți că ASP.net MVC nu este un înlocuitor pentru aplicațiile bazate pe formulare web ASP.Net
- Abordarea dezvoltării aplicației MVC trebuie decisă pe baza cerințelor aplicației și a caracteristicilor furnizate de ASP.net MVC pentru a se potrivi nevoilor specifice de dezvoltare.
- Procesul de dezvoltare a aplicațiilor cu ASP.NET MVC este mai complex în comparație cu aplicațiile bazate pe formulare web.
- Mentenabilitatea aplicației este întotdeauna mai mare odată cu separarea sarcinilor aplicației.
37) Care este diferența dintre Web Forms și MVC?
Iată diferența dintre Web Forms și MVC:
parametrii | Formulare Web | MVC |
---|---|---|
Modele Usi | Formularele Web Asp.Net urmează modelul de dezvoltare bazat pe evenimente. | Asp.Net MVC utilizează modelul de dezvoltare bazat pe modele MVC. |
Folosit de când | Exista din 2002 | A fost lansat pentru prima dată în 2009 |
Suport pentru starea Vizualizare | Asp.Net Web Forms acceptă starea de vizualizare pentru gestionarea stării la nivelul clientului. | .Net MVC nu acceptă starea de vizualizare. |
tipul URL | Asp.Net Web Forms are adrese URL bazate pe fișiere. Înseamnă că numele fișierului există în adresele URL și trebuie să existe fizic. | Asp.Net MVC are URL-uri bazate pe rută, ceea ce înseamnă că adresele URL sunt redirecționate către controlori și acțiuni. |
Sintaxă | Asp.Net MVC urmează sintaxa Web Forms. | Asp.Net MVC urmează sintaxa personalizabilă. |
Tip de vizualizare | Vizualizările Web Forms sunt strâns cuplate cu Code behind(ASPX-CS), adică cu logica. | Vizualizările MVC și logica sunt întotdeauna păstrate separat. |
Aspect și senzații consistente | Are pagini principale pentru un aspect consistent. | Asp.Net MVC are machete pentru un aspect consistent. |
Reutilizarea codului | Web Forms oferă controale utilizator pentru reutilizarea codului. | Asp.Net MVC oferă vizualizări parțiale pentru reutilizarea codului. |
Control pentru HTML | Less control asupra HTML redat. | Control deplin asupra HTML |
Conducerea statului | Gestionarea automată a stării controalelor. | Management manual de stat. |
Suport TDD | Este necesar un TDD slab sau personalizat. | Încurajează și include TDD! |
38) Cum poți afișa ceva în CodeIgniter?
Iată un cod pentru a afișa ceva în CodeIgniter:
<?=$title?> As opposed to <?php echo $title; ?> Control structures are usually written as follows <?php foreach ($customers as $customer): ?> <li> <p><?=$customer->first_name?><p> </li> <?php endforeach; ?>
39) Scrieți un cod pentru a demonstra modelul, vizualizarea și controlerul în CodeIgniter.
Iată un cod pentru a demonstra modelul, vizualizarea și controlerul în CodeIgniter:
Deschideți fișierul Welcome.php controller localizat aplicația/controlere:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Actualizați indexul după cum urmează:
public function index() { $this->load->model('customers_model'); $data['customer'] = $this->customers_model->get_customer(3); $this->load->view('welcome_message',$data); }
Scrieți următorul cod în customer_model.php în application/models.
<?php class Customers_model extends CI_Model { public function get_customer($id) { $data['id'] = 3; $data['first_name'] = 'John'; $data['last_name'] = 'Doe'; $data['address'] = 'Kingstone'; return $data; } }
Deschide welcome_message.php situat în
application/views/welcome_message.php
Înlocuiți codul cu următorul
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CodeIgniter MVC Basics</title> </head> <body> <h3>Customer Details Card</h3> <p>Customer ID : <strong><?=$customer['id']?></strong></p> <p>First Name : <strong><?=$customer['first_name']?></strong></p> <p>Last Name : <strong><?=$customer['last_name']?></strong></p> <p>Address : <strong><?=$customer['address']?></strong></p> </body> </html>
40) Puteți crea o aplicație web atât cu formulare web, cât și cu MVC?
Da. Trebuie să includeți referințele de asamblare MVC de mai jos în aplicația de formulare web pentru a crea o aplicație hibridă.
System.Web.Mvc System.Web.Razor System.ComponentModel.DataAnnotations
41) Cum puteți atribui un nume de alias pentru Acțiunea API Web ASP.NET?
Putem da un nume de alias pentru acțiunea API Web la fel ca în cazul ASP.NET MVC, folosind atributul „ActionName” după cum urmează:
[HttpPost] [ActionName("SaveStudentInfo")] public void UpdateStudent(Student aStudent) { StudentRepository.AddStudent(aStudent); }
42) Care este principala diferență dintre MVC și WebAPI?
Iată diferența principală dintre MVC și WebAPI:
Cadrul MVC este utilizat pentru dezvoltarea aplicațiilor care au o interfață cu utilizatorul. Pentru aceasta, vizualizările pot fi folosite pentru construirea unei interfețe cu utilizatorul.
WebAPI este folosit pentru dezvoltarea serviciilor HTTP. Alte aplicații pot fi, de asemenea, numite metode WebAPI pentru a prelua acele date.
43) Cum vă puteți asigura că API-ul web returnează numai date JSON?
Pentru a face API-ul Web să serializeze obiectul care revine în format JSON și returnează numai date JSON. Pentru aceasta, ar trebui să adăugați următorul cod în clasa WebApiConfig.cs în orice proiect MVC Web API:
//JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); 1 2 3 //JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))
44) Care este diferența dintre MVVM și MVC?
Iată diferențele importante dintre MVVM și MVC:
MVC | MVVM |
---|---|
Un controler este punctul de intrare în aplicație. | Vizualizarea este punctul de intrare în aplicație. |
Una până la multe relații între Controller și View. | Una până la multe relații între View și View Model. |
Vizualizare nu are referință la Controller | View au referințe la View-Model. |
MVC este modelul vechi | MVVM este un model relativ nou. |
Este dificil de citit, modificat, de testat unitar și de reutilizat acest model | Procesul de depanare va fi complicat atunci când avem legături complexe de date. |
Componenta modelului MVC poate fi testată separat de utilizator | Ușor pentru testarea unitară separată, iar codul este determinat de evenimente. |
45) Ce este MVC în AngularJS?
Angular.js urmează arhitectura MVC, diagrama cadrului MVC este prezentată mai jos.
- Controllerul reprezintă stratul care are logica de afaceri. Evenimentele utilizatorului declanșează funcțiile care sunt stocate în controlerul dumneavoastră. Evenimentele utilizator fac parte din controler.
- Vizualizările sunt folosite pentru a reprezenta stratul de prezentare care este oferit utilizatorilor finali.
- Modelele sunt folosite pentru a vă reprezenta datele. Datele din modelul dvs. pot fi la fel de simple ca doar a avea declarații primitive. De exemplu, dacă întrețineți o aplicație de student, modelul dvs. de date ar putea avea doar un ID de student și un nume. Sau poate fi și complex, având un model de date structurat. Dacă mențineți o cerere de proprietate de mașină, puteți avea structuri care să definească vehiculul în sine în ceea ce privește capacitatea motorului, capacitatea de locuri etc.
46) Care este rolul MVC în AngularJS?
Mai jos este o definiție simplă a funcționării controlerului AngularJS.
- Responsabilitatea principală a operatorului este de a controla datele care sunt transmise vizualizării. Scopul și vederea au o comunicare bidirecțională.
- Proprietățile vizualizării pot numi „funcții” pe domeniu. Mai mult, evenimentele de pe vedere pot numi „metode” pe domeniu. Fragmentul de cod de mai jos oferă un exemplu simplu de funcție.
- Funcția($scope) care este definită la definirea controlerului și o funcție internă care este utilizată pentru a returna concatenarea $scope.firstName și $scope.lastName.
- În AngularJS, atunci când definiți o funcție ca variabilă, aceasta este cunoscută ca o metodă.
- Datele în acest fel trec de la controlor la scope, iar apoi datele trec înainte și înapoi de la scope la vizualizare.
- Scopul este utilizat pentru a expune modelul la vedere. Modelul poate fi modificat prin metode definite în domeniu, care ar putea fi declanșate prin intermediul evenimentelor din vizualizare. Putem defini legarea modelului bidirecțional de la scop la model.
- În mod ideal, controlerele nu ar trebui folosite pentru manipularea DOM. Acest lucru ar trebui făcut prin directive, pe care le vom vedea mai târziu.
- Cea mai bună practică este să aveți controlere bazate pe funcționalitate. De exemplu, dacă aveți un formular pentru introducere și aveți nevoie de un controler pentru asta, creați un controler numit „controler de formulare”.
47) Cum să construiți un controler de bază în AngularJS
Fragmentul de cod de mai jos este o pagină HTML simplă care are titlul „Înregistrare eveniment” și are referințe la biblioteci importante, cum ar fi Bootstrap, jquery și Angular.
- Adăugăm referințe la foile de stil CSS bootstrap, care vor fi folosite împreună cu bibliotecile bootstrap.
- Adăugăm referințe la bibliotecile AngularJS. Deci, acum, orice vom face cu angular.js în viitor va fi referit din această bibliotecă.
- Adăugăm referințe la biblioteca bootstrap pentru a face pagina noastră web mai receptivă la anumite controale.
- Am adăugat referințe la bibliotecile jquery care vor fi folosite pentru manipularea DOM. Acest lucru este cerut de Angular deoarece unele dintre funcționalitățile din Angular depind de această bibliotecă.
În mod implicit, fragmentul de cod de mai sus va fi prezent în toate exemplele noastre, astfel încât să putem afișa doar codul angularJS specific în secțiunile ulterioare.
În al doilea rând, să ne uităm la fișierele și structura fișierelor pe care o vom începe cu cursul nostru:
- În primul rând, ne separăm fișierele în 2 foldere, așa cum se face cu orice aplicație web convențională. Avem folderul „CSS”. Acesta va conține toate fișierele noastre de foaie de stil în cascadă și apoi vom avea folderul nostru „lib”, care va avea toate JavaScenariu fișiere.
- Fișierul bootstrap.css este plasat în folderul CSS și este folosit pentru a adăuga un aspect bun pentru site-ul nostru.
- Angular.js este fișierul nostru principal, care a fost descărcat de pe site-ul angularJS și păstrat în folderul nostru lib.
- Fișierul app.js va conține codul nostru pentru controlere.
- Fișierul bootstrap.js este folosit pentru a suplimenta fișierul bootstrap.cs pentru a adăuga funcționalitate bootstrap la aplicația noastră web.
- Fișierul jquery va fi folosit pentru a adăuga funcționalitate de manipulare DOM pe site-ul nostru.
Exemplu de utilizare a angular.js:
Ceea ce vrem să facem aici este doar să afișam cuvintele „AngularJS” atât în format text, cât și într-o casetă de text atunci când pagina este vizualizată în browser.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body> <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <div ng-app="DemoApp" ng-controller="DemoController"> Tutorial Name : <input type="text" ng-model="tutorialName"><br> This tutorial is {{tutorialName}} </div> <script> var app = angular.module('DemoApp',[]); app.controller('DemoController', function($scope){ $scope.tutorialName = "Angular JS"; }); </script> </body> </html>
48) Care este utilizarea ng-controller-ului în fișierele externe în AngularJS
Efectuați următorii pași pentru a utiliza ng-controller în fișierele externe din AngularJS
Pas 1) În fișierul app.js, adăugați următorul cod pentru controlerul dvs
angular.module('app',[]).controller('HelloWorldCtrl',function($scope) { $scope.message = "Hello World" });
Pas 2) Acum, în fișierul dvs. Sample.html, adăugați o clasă div care va conține directiva ng-controller și apoi adăugați o referință la variabila membru „mesaj”.
<!DOCTYPE html> <html ng-app="app"> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body> <h3> Guru99 Global Event</h3> <div class="container"> <div ng-controller="HelloWorldCtrl">{{message}}</div> </div> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <script src="app.js"></script> </body> </html>
49) Scrieți cod pentru a defini metode în AngularJS Controller?
Iată un cod pentru a defini metodele în AngularJS Controller:
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body ng-app="DemoApp"> <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <div ng-app="DemoApp" ng-controller="DemoController"> Tutorial Name :<input type="text" ng-model="tutorialName"><br> <br> This tutorial is {{tutorialName}} </div> <script> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.tutorialName = "Angular JS"; $scope.tName = function() { return $scope.tName; }; }); </script> </body> </html>
50) Scrieți codul folosind ng-model pentru a afișa controlul de intrare pe mai multe linii în AngularJS.
Iată un cod care utilizează ng-model pentru a afișa controlul de intrare pe mai multe linii în AngularJS:
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body > <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <div ng-app="DemoApp" ng-controller="DemoCtrl"> <form> Topic Description:<br> <br> <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>
51) Scrieți cod pentru a demonstra utilizarea elementelor de intrare.
Iată un exemplu de cod folosind elementele de intrare AngulaJS:
<!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 > <h3> Guru99 Global Event</h3> <div ng-app="DemoApp" ng-controller="DemoCtrl"> <form> Topic Description:<br> <br> Name : <input type="text" ng-model="pname"><br> Topic : <br> <input type="checkbox" ng-model="Topic.Controller">Controller<br> <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>
52) Cum poți crea un model în PHP?
Iată un cod pentru a crea model în PHP:
<?php class Opinion_poll_model extends CI_Model { public function __construct() { $this->load->database(); } public function total_votes() { $query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries'); return $query->row()->choices_count; } public function get_results() { $libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow"); $table_rows = ''; for ($i = 1; $i < 5; $i++) { $sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;"; $result = $model-> select($sql_stmt); $table_rows .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>"; } public function add_vote($choice) { $ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data); } } ?>
53) De ce să folosiți PHP MVC Framework?
Ar trebui să utilizați PHP MVC Framework deoarece simplifică lucrul cu tehnologii complexe prin:
- Ascunderea tuturor detaliilor complexe de implementare
- Furnizarea de metode standard pe care le putem folosi pentru a ne construi aplicațiile.
- Creșterea productivității dezvoltatorului, aceasta deoarece implementarea de bază a activităților precum conectarea la baza de date, igienizarea intrărilor utilizatorului etc., sunt deja parțial implementate.
- Respectarea standardelor profesionale de codare
54) Care sunt cadrele PHP MVC populare?
Iată cadre populare PHP MVC:
CodeIgniter: Este unul dintre cele mai populare cadre PHP MVC. Este ușor și are o curbă scurtă de învățare. Are un set bogat de biblioteci care ajută la construirea rapidă a site-urilor web și a aplicațiilor. Utilizatorii cu cunoștințe limitate despre programarea OOP îl pot folosi și ei.
Kohana: Este un controler de vizualizare a modelului ierarhic HMVC care este un cadru sigur și ușor. Are un set bogat de componente pentru dezvoltarea rapidă a aplicațiilor.
CakePHP: Este modelat după Ruby pe șine. Este cunoscut pentru concepte precum modelele de proiectare software, convenția asupra configurației, ActiveRecord etc.
Zend: Este un cadru puternic care este;
- Securizat, fiabil, rapid și scalabil
- Suportă Web 2.0 și crearea de servicii web.
Dispune de API-uri de la furnizori precum AmazonGoogle, Flickr, Yahoo, etc. Este ideal pentru dezvoltarea aplicațiilor de afaceri.
55) Cum poți crea vizualizări în PHP?
Iată un cod pentru a crea vizualizări în PHP:
opinion_poll_form.php <html> <head> <title> JavaScript Libraries - Opinion Poll </title> </head> <body> <h3>JavaScript Libraries - Opinion Poll</h3> <p><b>What is your favorite JavaScript Library? </b></p> <form method="POST" action="index.php"> <p> <input type="radio" name="vote" value="1" /> JQuery <br /> <input type="radio" name="vote" value="2" /> MooTools <br /> <input type="radio" name="vote" value="3" /> YUI Library <br /> <input type="radio" name="vote" value="4" /> Glow </p> <p> <input type="submit" name="submitbutton" value="OK" /> </p> </form> </body> </html>
Să creăm acum pagina de rezultate results.php
<html> <head> <title>JavaScript Libraries - Opinion Poll Results</title> </head> <body> <h3>JavaScript Libraries - Opinion Poll Results</h3> <p><b>What is your favorite JavaScript Library?</b></p> <p><b><?php echo $total_votes; ?></b> people have thus far taken part in this poll:</p> <p><table><tr><td> <?php print($rows); ?> </tr></td></table></p> <p><a href="#">Return to voting page</a></p> </body> </html>
Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)