55 nejčastějších otázek a odpovědí na pohovor MVC (PDF)

Zde jsou otázky k pohovoru MVC pro čerstvější i zkušené kandidáty, aby získali svou vysněnou práci.

 

Otázky a odpovědi k pohovoru MVC pro Freshers

1) Co je Model-View-Controller?

MVC je vzor softwarové architektury pro vývoj webových aplikací. Je spravováno třemi objekty, Model, View a Controller.

👉 Zdarma ke stažení PDF: Otázky a odpovědi k rozhovoru MVC


2) Co představuje Model-View-Controller v aplikaci MVC?

V modelu MVC,

  • Model– Představuje datovou doménu aplikace. Jinými slovy, obchodní logika aplikace je obsažena v modelu a je zodpovědná za údržbu dat.
  • Zobrazit – Představuje uživatelské rozhraní, se kterým koncoví uživatelé komunikují. Stručně řečeno, veškerá logika uživatelského rozhraní je obsažena v aplikaci View.
  • Ovladač- Je to ovladač, který odpovídá na akce uživatele. Na základě uživatelských akcí příslušný ovladač reaguje v rámci modelu a vybírá pohled k vykreslení, který zobrazuje uživatelské rozhraní. Logika uživatelského vstupu je obsažena v ovladači.

3) Pojmenujte sestavu pro definici MVC

Jedno Rámec MVC je definován v sestavení System.Web.Mvc.


4) Jaké jsou různé typy návratů metody akce ovladače

Zde jsou různé typy návratu metody akce ovladače:

  • Zobrazit výsledek
  • JavaVýsledek skriptu
  • Výsledek přesměrování
  • Výsledek JSON
  • Výsledek obsahu

5) Jaký je rozdíl mezi přidáváním tras do aplikace webového formuláře a aplikace MVC?

Pro přidání tras do aplikace webového formuláře používáme metodu MapPageRoute() třídy RouteCollection, zatímco pro přidávání tras do aplikace MVC používáme metodu MapRoute().


6) Jaké jsou dva způsoby, jak přidat omezení do trasy?

Dvě metody, jak přidat omezení do trasy, jsou

  • Používejte regulární výrazy
  • Použijte objekt, který implementuje rozhraní IRouteConstraint

7) Jaké jsou výhody MVC?

  • MVC rozděluje váš projekt do jiného segmentu a pro vývojáře je snadné na něm pracovat
  • Je snadné upravit nebo změnit některé části vašeho projektu, které těží z nižších nákladů na vývoj a údržbu projektu
  • MVC dělá váš projekt systematičtějším
  • Představuje jasné oddělení mezi obchodní logikou a logikou prezentace
  • Každý objekt MVC má různé odpovědnosti
  • Vývoj postupuje paralelně
  • Snadná správa a údržba
  • Všechny třídy a objekty jsou na sobě nezávislé

8) Co dělají funkce „beforeFilter()“, „beforeRender“ a „afterFilter“ v Controlleru?

  • beforeFilter(): Tato funkce se spustí před každou akcí v ovladači. Je to správné místo pro kontrolu aktivní relace nebo kontrolu uživatelských oprávnění.
  • beforeRender(): Tato funkce se volá po akční logice ovladače, ale před vykreslením pohledu. Tato funkce se často nepoužívá, ale může být vyžadována, pokud voláte render() ručně před koncem dané akce.
  • afterFilter(): Tato funkce je volána po každé akci ovladače a po dokončení renderování. Je to poslední metoda, kterou lze spustit.

9) Jaká je role komponent Prezentace, Abstrakce a Řízení v MVC?

Zde je role komponent Prezentace, Abstrakce a Ovládání v MVC:

  • Prezentace: Je to vizuální reprezentace konkrétní abstrakce v rámci aplikace
  • Abstrakce: Je to funkce obchodní domény v rámci aplikace
  • Řízení: Jedná se o komponentu, která udržuje konzistenci mezi abstrakcí v rámci systému a jejich prezentací uživateli kromě komunikace s ostatními ovládacími prvky v rámci systému.

10) Jaké jsou nevýhody modelu MVC?

Zde jsou některé důležité nevýhody modelu MVC:

  • Vzorec modelu je trochu složitý.
  • Neefektivita přístupu k datům.
  • S moderním uživatelským rozhraním je obtížné používat MVC.
  • Pro paralelní vývoj potřebujete více programátorů.
  • Vyžaduje se mnohočetné technologické znalosti.

11) Jaká je role „ActionFilters“ v MVC?

V MVC vám „ActionFilters“ pomáhají spouštět logiku při provádění nebo provádění akce MVC.


12) Jaké jsou kroky pro realizaci projektu MVC?

Kroky pro realizaci projektu MVC zahrnují:

  • Přijměte první žádost o aplikaci
  • Proveďte směrování
  • Vytvořte obslužnou rutinu požadavku MVC
  • Vytvořit ovladač
  • Execute Controller
  • Vyvolat akci
  • Provést výsledek

13) Co je směrování a tři segmenty?

Směrování vám pomůže určit strukturu adresy URL a namapovat adresu URL pomocí ovladače.

Pro směrování jsou důležité tři segmenty:

  • ControllerName
  • ActionMethodName
  • Parametr

14) Jak se provádí směrování ve vzoru MVC?

Existuje skupina tras s názvem RouteCollection, která se skládá z tras registrovaných v aplikaci. Metoda RegisterRoutes zaznamenává trasy v této kolekci. Trasa definuje vzor adresy URL a obslužnou rutinu, která se má použít, pokud požadavek odpovídá vzoru.

Prvním parametrem metody MapRoute je název trasy. Druhým parametrem bude vzor, ​​kterému URL odpovídá. Třetím parametrem mohou být výchozí hodnoty pro zástupné symboly, pokud nejsou určeny.


15) Jak můžete přejít z jednoho zobrazení do druhého pomocí hypertextového odkazu?

Pomocí metody „ActionLink“, jak je znázorněno v níže uvedeném kódu. Níže uvedený kód vytvoří jednoduchou adresu URL, která pomůže navigovat k ovladači „Home“ a vyvolat akci „GotoHome“.

Sbalit / Kopírovat kód

<%= Html.ActionLink("Home", "Gotohome") %>

Otázky a odpovědi na pohovor MVC pro zkušené

16) Jak jsou v MVC udržovány relace?

Relace lze v MVC udržovat třemi způsoby: tempdata, viewdata a viewbag.


17) Jaký je rozdíl mezi Temp data, View data a View Bag?

  • Údaje o teplotě: Pomáhá udržovat data, když přecházíte z jednoho ovladače na jiný.
  • Zobrazit data: Pomáhá udržovat data, když přecházíte z ovladače do zobrazení.
  • Zobrazit tašku: Je to dynamický obal kolem dat zobrazení.

18) Co je částečný pohled v MVC?

Částečné zobrazení v MVC vykreslí část obsahu zobrazení. Je to užitečné při snižování duplikace kódu. Jednoduše řečeno, částečný pohled umožňuje vykreslení pohledu v rámci nadřazeného pohledu.


19) Jak můžete implementovat Ajax v MVC?

V MVC lze Ajax implementovat dvěma způsoby

  • Knihovny Ajax
  • jquery

20) Jaký je rozdíl mezi „ActionResult“ a „ViewResult“?

„ActionResult“ je abstraktní třída, zatímco „ViewResult“ je odvozen od třídy „AbstractResult“. „ActionResult“ má řadu odvozených tříd jako „JsonResult“, „FileStreamResult“ a „ViewResult“.

„ActionResult“ je nejlepší, pokud dynamicky odvozujete různé typy zobrazení.


21) Jak můžete poslat výsledek zpět ve formátu JSON v MVC?

Chcete-li odeslat výsledek zpět ve formátu JSON v MVC, můžete použít třídu „JSONRESULT“.


22) Jaký je rozdíl mezi zobrazením a částečným zobrazením?

Zde je rozdíl mezi zobrazením a částečným zobrazením

Zobrazit Částečný pohled
Obsahuje stránku s rozložením Neobsahuje stránku s rozložením
Před vykreslením jakéhokoli pohledu se vykreslí úvodní stránka pohledu Částečné zobrazení neověřuje pro viewstart.cshtml. Nemůžeme vložit společný kód pro částečné zobrazení na stránku viewStart.cshtml
Zobrazení může mít značkovací značky, jako je tělo, html, hlava, název, meta atd. Částečné zobrazení je navrženo speciálně pro vykreslování v rámci pohledu a právě proto neobsahuje žádné značky
Zobrazení není lehké ve srovnání s částečným zobrazením Běžný pohled můžeme předat metodě RenderPartial

23) Jaké jsou typy výsledků v MVC?

V MVC existuje dvanáct typů výsledků, kde třída „ActionResult“ je hlavní třídou, zatímco 11 je jejich podtypy:

  • Zobrazit výsledek
  • PartialViewResult
  • EmptyResult
  • RedirectResult
  • RedirectToRouteResult
  • JsonResult
  • JavaScriptResult
  • ContentResult
  • FileContentResult
  • FileStreamResult
  • FilePathResult

24) Jaký je význam NonActionAttribute?

Všechny veřejné metody třídy řadiče jsou považovány za metodu akce, pokud chcete této výchozí metodě zabránit, pak musíte veřejné metodě přiřadit NonActionAttribute.


25) Jaké je použití výchozí trasy {resource}.axd/{*pathinfo}?

Výchozí trasa zabraňuje předávání požadavků na soubor webového prostředku, jako je Webresource.axd nebo ScriptResource.axd, do řadiče.


26) Jaké je pořadí filtrů, které se provedou, pokud je implementováno více filtrů?

Pořadí filtrů bude vypadat takto:

  • Autorizační filtry
  • Akční filtry
  • Filtry odezvy
  • Filtry výjimek

27) Jaké filtry ASP.NET se nakonec provedou?

Nakonec se provedou „Filtry výjimek“.


28) Jaké jsou přípony souborů pro zobrazení břitvy?

Pro zobrazení břitvy jsou přípony souborů

  • .cshtml: Pokud je C# programovacím jazykem
  • .vbhtml: Pokud je VB programovací jazyk

29) Jaké jsou dva způsoby přidávání omezení do trasy?

Dva způsoby přidání omezení do trasy jsou:

  • Použití regulárních výrazů
  • Použití objektu, který implementuje rozhraní IRouteConstraint

30) Jaké jsou dva případy, kdy není směrování implementováno nebo vyžadováno?

Dva případy, kdy není směrování vyžadováno, jsou

  • Když je nalezen fyzický soubor, který odpovídá vzoru adresy URL
  • Když je pro vzor adresy URL zakázáno směrování

Otázky k pohovoru MVC pro 5 let zkušeností

31) Jaké jsou vlastnosti MVC?

Zde jsou vlastnosti MVC:

  • Snadná testovatelnost bez tření. Vysoce testovatelný, rozšiřitelný a připojitelný rámec.
  • Nabízí plnou kontrolu nad vaším HTML a také vašimi URL
  • Využívá existující funkce poskytované ASP.NET, JSP, Django atd.
  • Jasné oddělení logiky: Model, View, Controller. Oddělení aplikačních úloh prostřednictvím obchodní logiky, logiky Ul a vstupní logiky.
  • Směrování URL pro adresy URL přátelské k SEO. Výkonné mapování URL pro srozumitelné a prohledávatelné adresy URL.
  • Podpora pro vývoj řízený testem (TDD).

32) Jaké jsou skutečné příklady MVC?

Zde je skutečný příklad MVC:

  • Předpokládejme, že jdete do restaurace. Nebudete chodit do kuchyně a připravovat jídlo, které jistě zvládnete i u vás doma. Místo toho tam prostě jdete a čekáte, až přijde číšník.
  • Nyní k vám přijde číšník a vy si jen objednáte jídlo. Číšník neví, kdo jste a co chcete, jen zapsal detail vaší objednávky jídla.
  • Poté se číšník přesune do kuchyně. V kuchyni vám číšník jídlo nepřipravuje.
  • Kuchař vám připraví jídlo. Číšník dostane vaši objednávku spolu s číslem vašeho stolu.
  • Cook pak připraví jídlo za vás. K vaření používá přísady. Předpokládejme, že jste si objednali zeleninový sendvič. Pak potřebuje chléb, rajče, brambory, kapie, cibuli, kousek, sýr atd., které získá z lednice
  • Cook nakonec předá jídlo číšníkovi. Nyní je úkolem číšníka přesunout toto jídlo mimo kuchyni.
  • Nyní číšník ví, jaké jídlo jste si objednali a jak se podává.

V tomto případě,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

33) Jaký je rozdíl mezi 3-tier Architecture a MVC Architecture?

Zde je rozdíl mezi 3-vrstvou Architecture a MVC Archistruktura:

Parametr 3-vrstva Architecture MVC Architecture
Komunikace Tento typ vzoru architektury nikdy nekomunikuje přímo s datovou vrstvou. Všechny vrstvy komunikují přímo pomocí trojúhelníkové topologie.
Používání 3vrstvé: široce používané ve webových aplikacích, kde klient, datové vrstvy a middleware běží na fyzicky oddělených platformách. Obecně se používá v aplikacích, které běží na jedné grafické pracovní stanici.

34) Jak můžete použít architekturu MVC v JSP?

Následující příklad ukazuje použití architektury MVC v JSP:

  • Vezmeme si příklad formuláře se dvěma proměnnými, „e-mail“ a „heslo“, což je naše vrstva zobrazení.
  • Jakmile uživatel zadá e-mail a heslo a klikne na odeslat, akce se předá na mvc_servlet, kam se předá e-mail a heslo.
  • Tento mvc_servlet je vrstva řadiče. Zde v mvc_servlet je požadavek odeslán objektu bean, který funguje jako modelová vrstva.
  • Hodnoty e-mailu a hesla jsou nastaveny do beanu a uloženy pro další účely.
  • Z beanu je hodnota načtena a zobrazena ve vrstvě zobrazení.

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) Jak funguje MVC na jaře?

Zde je návod, jak MVC funguje na jaře:

  • DispatcherServlet obdrží požadavek.
  • Poté DispatcherServlet komunikuje s HandlerMapping. Zruší také správce přidružený k tomuto konkrétnímu požadavku.
  • Řadič zpracuje tento požadavek voláním servisních metod a DispatcherServlet vrátí objekt ModelAndView.
  • Název pohledu je odeslán do ViewResolveru, aby našel skutečný pohled, který má být vyvolán.
  • Poté je DispatcherServlet předán View k vykreslení výsledku.
  • Pomocí dat modelu pohled vykreslí a odešle výsledek zpět uživateli.

36) Jaké důležité body je třeba pamatovat při vytváření aplikace MVC?

Zde je několik důležitých bodů, které je třeba mít na paměti při vytváření aplikace MVC:

  • Musíte si uvědomit, že ASP.net MVC není náhradou za aplikace založené na webových formulářích ASP.Net
  • Přístup k vývoji aplikací MVC se musí rozhodnout na základě požadavků na aplikace a funkcí poskytovaných ASP.net MVC, aby vyhovoval specifickým vývojovým potřebám.
  • Proces vývoje aplikací s ASP.NET MVC je složitější ve srovnání s aplikacemi založenými na webových formulářích.
  • Udržitelnost aplikací je vždy vyšší s oddělením aplikačních úloh.

37) Jaký je rozdíl mezi webovými formuláři a MVC?

Zde je rozdíl mezi webovými formuláři a MVC:

parametry Webové formuláře MVC
Model Webové formuláře Asp.Net se řídí vývojovým modelem řízeným událostmi. Asp.Net MVC používá model vývoje založený na vzorech MVC.
Používaný od Existuje od roku 2002 Poprvé byla vydána v roce 2009
Podpora pro zobrazení stavu Webové formuláře Asp.Net podporují stav zobrazení pro správu stavu na straně klienta. .Net MVC nepodporuje stav zobrazení.
typ adresy URL Webové formuláře Asp.Net mají adresy URL založené na souborech. Znamená to, že název souboru v adresách URL existuje a musí existovat fyzicky. Asp.Net MVC má adresy URL založené na směrování, což znamená, že adresy URL jsou přesměrovány na ovladače a akce.
Syntax Asp.Net MVC se řídí syntaxí webových formulářů. Asp.Net MVC se řídí přizpůsobitelnou syntaxí.
Typ zobrazení Pohledy webových formulářů jsou úzce propojeny s Code behind (ASPX-CS), tj. s logikou. MVC pohledy a logika jsou vždy uchovávány odděleně.
Konzistentní vzhled a dojem Má vzorové stránky pro konzistentní vzhled. Asp.Net MVC má rozložení pro konzistentní vzhled.
Znovupoužitelnost kódu Web Forms nabízí uživatelské ovládací prvky pro opětovné použití kódu. Asp.Net MVC nabízí částečné pohledy pro opětovné použití kódu.
Ovládání pro HTML Less kontrolu nad vykresleným HTML. Plná kontrola nad HTML
Řízení státu Automatické řízení stavu ovládacích prvků. Manuální správa stavu.
podpora TDD Je vyžadováno slabé nebo vlastní TDD. Povzbuzuje a zahrnuje TDD!

38) Jak můžete něco zobrazit v CodeIgniter?

Zde je kód pro zobrazení něčeho v 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) Napište kód, který demonstruje Model, View a Controller v CodeIgniter.

Zde je kód pro demonstraci modelu, zobrazení a ovladače v CodeIgniter:

Otevřete soubor Welcome.php controller umístěný aplikace/controllers:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->view('welcome_message');
    }
}

Aktualizujte index následovně:

public function index()
    {
            $this->load->model('customers_model');

            $data['customer'] = $this->customers_model->get_customer(3);

            $this->load->view('welcome_message',$data);
    }

Napište následující kód do customer_model.php v aplikaci/modely.

<?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;
    }
}

Otevřete soubor welcome_message.php umístěný v

application/views/welcome_message.php

Nahraďte kód následujícím

<!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) Dokážete vytvořit webovou aplikaci s webformy i MVC?

Ano. Chcete-li vytvořit hybridní aplikaci, musíte do aplikace webových formulářů zahrnout níže uvedené odkazy na sestavení MVC.

System.Web.Mvc
System.Web.Razor
System.ComponentModel.DataAnnotations

41) Jak můžete přiřadit název aliasu pro akci ASP.NET Web API?

Můžeme dát alias pro akci webového API stejný jako v případě ASP.NET MVC pomocí atributu „ActionName“ následovně:

[HttpPost]

[ActionName("SaveStudentInfo")]

public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}

42) Jaký je hlavní rozdíl mezi MVC a WebAPI?

Zde je hlavní rozdíl mezi MVC a WebAPI:

MVC framework se používá pro vývoj aplikací, které mají uživatelské rozhraní. K tomu lze pro vytvoření uživatelského rozhraní použít pohledy.

WebAPI se používá pro vývoj HTTP služeb. Další aplikace mohou být také nazývány metodami WebAPI pro načtení těchto dat.


43) Jak můžete zajistit, aby webové rozhraní API vracelo pouze data JSON?

Aby webové rozhraní API serializovalo vracející se objekt do formátu JSON a vrátilo pouze data JSON. Za tímto účelem byste měli přidat následující kód do třídy WebApiConfig.cs v jakémkoli projektu 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) Jaký je rozdíl mezi MVVM a MVC?

Zde jsou důležité rozdíly mezi MVVM a MVC:

MVC MVVM
Ovladač je vstupním bodem do aplikace. Pohled je vstupním bodem do aplikace.
Jeden až mnoho vztahů mezi Controllerem a View. Jeden až mnoho vztahů mezi View & View Model.
Pohled nemá odkaz na řadič Pohled má odkazy na model pohledu.
MVC je starý model MVVM je relativně nový model.
Tento model je obtížné číst, měnit, testovat a znovu používat Proces ladění bude komplikovaný, když máme složité datové vazby.
Komponentu MVC Model lze testovat odděleně od uživatele Snadné pro samostatné testování jednotek a kód je řízen událostmi.

45) Co je MVC v AngularJS?

Angular.js se řídí architekturou MVC, schéma frameworku MVC je uvedeno níže.

  • Řadič představuje vrstvu, která má obchodní logiku. Uživatelské události spouštějí funkce, které jsou uloženy uvnitř vašeho ovladače. Uživatelské události jsou součástí ovladače.
  • Pohledy se používají k reprezentaci prezentační vrstvy, která je poskytována koncovým uživatelům.
  • K reprezentaci vašich dat se používají modely. Data ve vašem modelu mohou být tak jednoduchá, jako pouhé primitivní deklarace. Pokud například udržujete studentskou aplikaci, váš datový model může mít pouze ID studenta a jméno. Nebo to může být také složité, protože má strukturovaný datový model. Pokud udržujete aplikaci pro vlastnictví automobilu, můžete mít struktury pro definování samotného vozidla z hlediska jeho objemu motoru, kapacity sedadel atd.

46) Jaká je role MVC v AngularJS?

Následuje jednoduchá definice fungování AngularJS Controller.

  • Primární odpovědností správce je kontrolovat data, která jsou předávána pohledu. Rozsah a pohled mají obousměrnou komunikaci.
  • Vlastnosti pohledu mohou volat „funkce“ v rozsahu. Kromě toho mohou události na zobrazení volat „metody“ na rozsahu. Níže uvedený fragment kódu poskytuje jednoduchý příklad funkce.
    • Funkce ($scope), která je definována při definování kontroleru, a interní funkce, která se používá k vrácení zřetězení $scope.firstName a $scope.lastName.
    • Když v AngularJS definujete funkci jako proměnnou, je známá jako metoda.

  • Data tímto způsobem přecházejí od správce do rozsahu a poté data přecházejí tam a zpět z rozsahu do zobrazení.
  • Rozsah se používá k vystavení modelu pohledu. Model lze upravovat pomocí metod definovaných v rozsahu, které lze spouštět prostřednictvím událostí z pohledu. Můžeme definovat obousměrnou vazbu modelu z rozsahu na model.
  • Ovladače by v ideálním případě neměly být používány pro manipulaci s DOM. To by mělo být provedeno směrnicemi, které uvidíme později.
  • Nejlepší praxí je mít ovladače založené na funkčnosti. Pokud máte například formulář pro vstup a potřebujete k tomu ovladač, vytvořte ovladač nazvaný „řadič formuláře“.

47) Jak vytvořit základní ovladač v AngularJS

Níže uvedený úryvek kódu je jednoduchá stránka HTML, která má název „Registrace události“ a obsahuje odkazy na důležité knihovny, např. Bootstrap, jquery a Angular.

  1. Přidáváme odkazy na bootstrap CSS styly, které budou použity ve spojení s bootstrap knihovnami.
  2. Přidáváme odkazy na knihovny AngularJS. Takže cokoli, co budeme dělat s angular.js v budoucnu, bude odkazováno z této knihovny.
  3. Přidáváme odkazy na bootstrap knihovnu, aby naše webová stránka lépe reagovala na určité ovládací prvky.
  4. Přidali jsme odkazy na knihovny jquery, které budou použity pro manipulaci s DOM. To vyžaduje Angular, protože některé funkce v Angular jsou závislé na této knihovně.

Ve výchozím nastavení bude výše uvedený fragment kódu přítomen ve všech našich příkladech, takže v následujících částech můžeme zobrazit pouze konkrétní kód angularJS.

Za druhé, podívejme se na naše soubory a strukturu souborů, kterou začneme s naším kurzem:

  1. Nejprve rozdělíme naše soubory do 2 složek, jak se to dělá u jakékoli běžné webové aplikace. Máme složku „CSS“. Bude obsahovat všechny naše soubory kaskádových stylů a pak budeme mít naši složku „lib“, která bude obsahovat všechny naše JavaScénář soubory.
  2. Soubor bootstrap.css je umístěn ve složce CSS a používá se k přidání dobrého vzhledu a chování našeho webu.
  3. Angular.js je náš hlavní soubor, který byl stažen z webu angularJS a uložen v naší složce lib.
  4. Soubor app.js bude obsahovat náš kód pro ovladače.
  5. Soubor bootstrap.js se používá k doplnění souboru bootstrap.cs a přidává do naší webové aplikace funkci bootstrap.
  6. Soubor jquery bude použit k přidání funkcí manipulace DOM na naše stránky.

Příklad použití angular.js:

Chceme zde pouze zobrazit slova „AngularJS“ v textovém formátu i v textovém poli, když je stránka zobrazena v prohlížeči.

<!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) Jaké je použití ng-controlleru v externích souborech v AngularJS

Chcete-li použít ng-controller v externích souborech v AngularJS, proveďte následující kroky

Krok 1) Do souboru app.js přidejte následující kód pro váš ovladač

angular.module('app',[]).controller('HelloWorldCtrl',function($scope)
{
    $scope.message = "Hello World"
});

Krok 2) Nyní do souboru Sample.html přidejte třídu div, která bude obsahovat direktivu ng-controller, a poté přidejte odkaz na členskou proměnnou „message“.

<!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) Napsat kód pro definování metod v AngularJS Controller?

Zde je kód pro definování metod v 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) Napište kód pomocí ng-modelu pro zobrazení víceřádkového řízení vstupu v AngularJS.

Zde je kód používající ng-model k zobrazení víceřádkového řízení vstupu v 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>
        &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>

51) Napište kód pro demonstraci použití vstupních prvků.

Zde je příklad kódu pomocí vstupních prvků 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>
        &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>

52) Jak můžete vytvořit model v PHP?

Zde je kód pro vytvoření modelu v 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) Proč používat PHP MVC Framework?

Měli byste používat PHP MVC Framework, protože zjednodušuje práci se složitými technologiemi:

  • Skrytí všech složitých implementačních detailů
  • Poskytování standardních metod, které můžeme použít k sestavení našich aplikací.
  • Zvýšená produktivita vývojářů, je to proto, že základní implementace činností, jako je připojení k databázi, sanitace uživatelského vstupu atd., jsou již částečně implementovány.
  • Dodržování profesionálních standardů kódování

54) Jaké jsou oblíbené PHP MVC frameworky?

Zde jsou oblíbené frameworky PHP MVC:

CodeIgniter: Je to jeden z nejpopulárnějších PHP MVC frameworků. Je lehký a má krátkou křivku učení. Má bohatou sadu knihoven, které pomáhají rychle vytvářet webové stránky a aplikace. Používat jej mohou i uživatelé s omezenými znalostmi OOP programování.

Kohana: Je to hierarchický řadič zobrazení modelu HMVC, který je bezpečný a lehký rámec. Má bohatou sadu komponent pro rychlý vývoj aplikací.

CakePHP: Je po vzoru Ruby on rails. Je známý pro koncepty, jako jsou vzory návrhu softwaru, konvence nad konfigurací, ActiveRecord atd.

Zend: Je to mocný rámec;

  • Bezpečné, spolehlivé, rychlé a škálovatelné
  • Podporuje Web 2.0 a tvorbu webových služeb.

Obsahuje API od dodavatelů jako Amazon, Google, Flickr, Yahoo atd. Je ideální pro vývoj obchodních aplikací.


55) Jak můžete vytvářet pohledy v PHP?

Zde je kód pro vytváření pohledů v 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>

Nyní vytvoříme stránku výsledků 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>

Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)