Web888.vn
  • Shop
  • Blog
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • AngularJS
  • Novità tecnologiche
Meccanismo di iniezione delle dipendenze in angularJS

Meccanismo di iniezione delle dipendenze in angularJS

  • 24-07-2022
  • Toanngo92
  • 0 Comments

DI è un potente meccanismo angularJS, aiuta a iniettare un oggetto definito da una libreria di terze parti nell'applicazione angolare, che viene passato come elemento nell'array come secondo parametro quando si crea un'istanza del modulo angularJS, in base al modo in cui il codice abbiamo capire, aiuta a fare riferimento all'oggetto della libreria ma senza usare l'istruzione di riferimento diretto, è la tecnica per far dipendere una funzione dal modulo al momento dell'esecuzione senza codificarlo. .

Vedi di più sull'iniezione di dipendenza su wikipedia: https://en.wikipedia.org/wiki/Dependency_injection

I programmatori possono dividere l'applicazione in molti componenti diversi (componente) e possono iniettare da un componente all'altro, il meccanismo di modularizzazione nell'applicazione angularJS rende facile configurare, riutilizzare, aggiornare Aggiornare e testare i componenti. L'iniettore integrato (oggetto iniettato predefinito) sarà responsabile della creazione di componenti (componenti), dell'ordinamento delle dipendenze e della loro fornitura ad altri componenti quando richiesto.

Come accennato, il meccanismo di injection rende il codice più riutilizzabile, ad esempio se vogliamo creare una funzionalità che deve essere riutilizzata in diverse situazioni dell'applicazione, pensare a definire un business servizi comuni e riutilizzarli iniettandoli come dipendenza .

Alcuni dei componenti e degli oggetti che angularJS inietta nell'applicazione attraverso il meccanismo di iniezione:

  • valore
  • Fornitore
  • Costante
  • Fabbrica
  • Servizio

Mục lục

  • Valore
  • Fornitore
  • Costante

Valore

Questo è un metodo del modulo, aiuta il programmatore a definire un oggetto (oggetto), una stringa (numero) o un numero (numero) e iniettarli nel controllore durante la fase di configurazione (fase di avvio). . Viene spesso utilizzato per iniettare valori in server, controller, facetory.

Vedi l'esempio qui sotto:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dependency injection</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myController"> </div> </body> <script> var myApp = angular.module('myApp', []); myApp.value("number",10); myApp.value("string","Hello"); myApp.value("object",{name:"Nguyen Van A",age:20}); myApp.value("array",["Nguyen Van A","Nguyen Van B","Nguyen Van C"]); myApp.controller('myController', function($scope,number,string,object,array){ $scope.number = number; $scope.string = string; $scope.object = object; $scope.array = array; console.log($scope.number); console.log($scope.string); console.log($scope.object); console.log($scope.array); }); </script> </html>

Risultato durante l'esecuzione del programma:

Fornitore

AngularJs utilizza il metodo provider() per creare un servizio o una factory durante la fase di configurazione (quando si inizia ad avviare e configurare l'applicazione), un provider è una funzione factory separata insieme a $ get() e restituisce un valore, una factory o un servizio ( è un po' confuso, ma guarda l'esempio: dice ad angualrJS come creare un servizio iniettabile (l'attività è iniettabile, quindi il provider definisce il servizio e viene creato tramite il servizio) builtin è $provide

Considera l'esempio seguente:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Example Provide</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.32/angular.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myCtrl"> <button ng-click="DisplayProvider()" ng-disabled="flag">Display</button> <div ng-bind="ProviderOutput"></div> </div> </body> <script> var app = angular.module('myApp', []); app.provider("myProvider", function () { this.$get = function () { return { Display: function () { return "Display from services"; } }; }; }); app.controller('myCtrl', function ($scope, myProvider) { $scope.ProviderOutput = "Provider outoput"; $scope.DisplayProvider = function () { $scope.flag = true; $scope.ProviderOutput = myProvider.Display(); } }); </script> </html>

Questo è l'esempio più semplice di come utilizzare un provider per creare servizi iniettabili nel controller, come possiamo vedere, il metodo Display di myProvider può già essere chiamato e l'oggetto myProvider viene iniettato nel controller per l'uso, simile a altri oggetti iniettabili.

Inoltre, possiamo ancora definire le funzioni tramite i metodi app.config(), app.run() (metodi che verranno eseguiti all'avvio della configurazione dell'applicazione o all'avvio dell'applicazione), quindi anche le funzioni sono iniettabili tramite il meccanismo di injection.

Costante

In angularJS, il metodo config() non può passare un'istanza del servizio o il valore definito tramite il metodo value() come parametro, quindi non è possibile iniettarvi un valore o un'entità. . Tuttavia, è ancora possibile iniettare una costante come fornitore di servizi durante la configurazione. Ciò significa che la costante aiuta a passare i valori durante la configurazione e può essere utilizzata anche mentre l'applicazione è in esecuzione (tempo di esecuzione).)

Dimostralo attraverso un esempio:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dependency injection</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myController"> </div> </body> <script> var myApp = angular.module('myApp', []); myApp.value("testnumber",100); myApp.config(function($provide,testnumber){ console.log(testnumber); }); myApp.controller('myController', function($scope,testnumber){ }); </script> </html>

Dopo l'esecuzione, il browser restituisce un errore:

per costante, possiamo iniettare valore in config() o run(), anche cambiare il valore. Tuttavia, non ha molto senso perché anche se il valore della costante è stato modificato nella configurazione, il livello del controller e i dati della variabile sono ancora identificati dal valore durante l'inizializzazione (la costante è una costante, nessun cambiamento di valore. valore in tutto il programma) Vedere l'esempio seguente:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dependency injection</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.js"></script> </head> <body ng-app="myApp"> <div ng-controller="myController"> {{testnumber}} </div> </body> <script> var myApp = angular.module('myApp', []); myApp.constant("testnumber",100); myApp.config(function($provide,testnumber){ console.log($provide); testnumber = 1000; console.log(testnumber); }); myApp.controller('myController', function($scope,testnumber){ $scope.testnumber = testnumber; }); </script> </html>

Bài viết liên quan:

Funzioni che funzionano con le stringhe in PHP
Costanti in PHP e come dichiarare le costanti
Installa il sito Web WordPress su localhost usando Xampp
Mythemeshop offre gratuitamente alla community 36 temi wordpress in versione premium !
Per sviluppare rapidamente il tuo lavoro, tieni a mente queste cose!
Manuale utente e funzioni di amministrazione di base di WordPress CMS
Soffrire prima della felicità e poi diventare ricchi? Come pensare correttamente ?
Correggi l'errore "Directory temporanea mancante" in WordPress
Non accettare la crudele realtà del mercato, non pensare al successo!
Motivi per cui le persone sono sempre più inesperte nella vita
Istruzioni per l'utilizzo del plugin wp Bakery Builder (compositore visivo) per creare una landing page
Istruzioni per l'installazione e l'attivazione di Office 2013

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Dati JSON in SQL Server

Funzionalità avanzate di SQL in SQL Server 2019

Presentazione di Azure SQL

Installa manualmente PHP su sistemi operativi Linux e Unix

Installa PHP manualmente su Mac OS

Giới thiệu

web888.vn là chuyên trang chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với web888

© web888.vn - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.

Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×