Mọi thứ bạn cần biết về Factory trong AngularJS



Bài viết này sẽ cung cấp cho bạn kiến ​​thức chi tiết và toàn diện về Factory trong AngularJS và nó khác với Service như thế nào.

cung cấp các dịch vụ là các đối tượng singleton có thể tái sử dụng. Chúng có thể được sử dụng để chia sẻ mã trên các ứng dụng AngularJS của người dùng. Chúng cũng có thể được đưa vào các chỉ thị, bộ lọc và . Trong bài này, chúng ta sẽ hiểu về nhà máy trong AngularJS.

Factory trong AngularJS là gì?

Factory là một hàm góc được sử dụng để trả về các giá trị. Giá trị theo yêu cầu được tạo ra bởi nhà máy, bất cứ khi nào một dịch vụ hoặc bộ điều khiển cần nó. Khi giá trị được tạo, nó được sử dụng lại cho tất cả các dịch vụ và bộ điều khiển.





Logo Angular - Nhà máy ở AngularJS

Chúng ta có thể sử dụng nhà máy để tạo ra một dịch vụ.



Sự khác biệt giữa Dịch vụ và Nhà máy

  • Một dịch vụ có thể được định nghĩa theo cách sau:

app.service ('FirstService', function () {

this.sayHola = function () {



console.log ('Xin chào')

}

})

Phương thức .service () lấy tên và hàm định nghĩa dịch vụ. Chúng ta có thể tiêm theo cách sau:

app.controller ('AppController', function (FirstService) {

FirstService.sayHello () // nhật ký 'Xin chào'

làm thế nào để in nhật ký cam kết git

})

  • Mặt khác, một nhà máy có thể được định nghĩa theo cách sau:

app.factory ('FirstService', function () {

trở về {

sayHola: function () {

console.log ('Xin chào')

}

}

})

các sự kiện trong javascript là gì

factory () cũng là một phương thức lấy tên và hàm xác định nhà máy. Chúng ta có thể tiêm giống như tiêm dịch vụ. Sự khác biệt chính giữa dịch vụ và nhà máy là chúng tôi trả về một đối tượng theo nghĩa đen trong trường hợp của nhà máy (thay vì sử dụng điều này). Lý do là vì dịch vụ là một hàm khởi tạo trong khi một nhà máy thì không.

  • Để hiểu rõ hơn, hãy xem qua hàm factory ():

fnhà máy chú ý (tên, factFn, thực thi) {

nhà cung cấp trả lại (tên, {

$ get: thi hành! == false? executeReturnValue (name, factFn): factFn

})

}

Trong đoạn mã được đưa ra ở trên, nó lấy tên và hàm xuất xưởng được truyền vào. Nó trả về một nhà cung cấp có cùng tên, cùng với$ nhận đượcphương thức (là chức năng của nhà máy). Điều này là do lý do mà bất cứ khi nào bộ phun được yêu cầu về một phụ thuộc cụ thể, bộ phun sẽ yêu cầu nhà cung cấp về một phiên bản của dịch vụ đó bằng cách gọi$ get ()phương pháp.

  • Khi tiêm FirstService, các hàm của nhà máy được gọi:

FirstServiceProvider. $ Get () // trả về phiên bản của dịch vụ

  • Đối với mã dịch vụ:

dịch vụ hàm (tên, hàm tạo) {

return factory (name, ['$ injection', function ($ injection) {

return $ injectionor.instantiate (constructor)

}])

}

Khi chúng tôi gọiservice (), factory ()là một trong những thực sự được gọi. Điều này được thực hiện bằng cách truyền một hàm yêu cầu bộ phun khởi tạo một đối tượng bởi hàm tạo. Nói một cách đơn giản hơn, dịch vụ gọi một nhà máy được xác định trước.

$ injectionor.instantiate ()gọi choObject.create ()với hàm khởi tạo. Đó là lý do tại sao điều này được sử dụng trong các dịch vụ.

Ví dụ về Factory trong JavaScript

var firstModule = angle.module ('firstModule', [])

firstModule.factory ('firstFactory', function () {

trả về 'một giá trị'

java vectơ là gì

})

firstModule.controller ('FirstController', function ($ scope, firstFactory) {

console.log (firstFactory)

})

Đưa giá trị vào nhà máy

Một giá trị có thể được đưa vào nhà máy bằng phương pháp sau:

var firstModule = angle.module ('firstModule', [])

firstModule.value ('numberValue', 29)

firstModule.controller ('FirstController', hàm ($ scope, numberValue) {

console.log (numberValue)

})

GHI CHÚ: Cần phải lưu ý rằng giá trị được tạo ra bởi chức năng nhà máy được đưa vào, không phải chính chức năng nhà máy.

Với điều này, chúng ta kết thúc bài viết Factory trong AngularJS này. Tôi hy vọng bạn đã hiểu chính xác nhà máy là gì và nó khác với dịch vụ như thế nào.

Check out của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Angular là một khung JavaScript được sử dụng để tạo các ứng dụng web phía máy khách có thể mở rộng, doanh nghiệp và hiệu suất. Với việc áp dụng khung công tác Angular đang ở mức cao, việc quản lý hiệu suất của ứng dụng được cộng đồng định hướng gián tiếp thúc đẩy cơ hội việc làm tốt hơn. Khóa đào tạo Chứng chỉ Angular nhằm mục đích bao quát tất cả các khái niệm mới này về Phát triển Ứng dụng Doanh nghiệp.