Angular如何創建服務? 5種方式了解一下!
本篇文章跟大家介紹一下Angular創建服務的5種方式。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
config配置區塊
Angular應用的運作主要分為兩部分:app.config()和app.run( ),config是你設定任何的provider的階段,讓應用程式可以使用正確的服務,需要注意的是在設定區塊中只有provider能被注入(只有兩個例外是$provide和$injector)。而provider也只能在config中註入。 Angular注入服務的5種方式中,只有透過provider和constant注入的服務可以在依賴到config中。
app.controller('MyController', function ($httpProvider) { //错误,无法在控制器中注入服务提供者 }); app.config(function ($http) { //错误,配置块中只能注入服务 });
相關推薦:《angularjs教學》
#關於一些內建的服務
##控制器函數是可以被注入的,但是控制器本身是不能被注入到任何東西裡面去的,然而,有一個內建的AngularJS服務叫做$controller,它負責設置你的控制器,調用myMod.controller(…)時,你實際上是訪問了這個服務的provider。 程式碼:myMod.controller('MainController', function($scope) { // ... });
myMod.config(function($controllerProvider) { $controllerProvider.register('MainController', function($scope) { // ... }); });
服務的5中註入方式
factory()
依賴注入器將使用factory函數建立服務的實例,工廠函數傳回一個物件。myModule.factory('myService', function () { var myService = {}; //添加myService的一些属性和方法 return myService; });
service()
service注入透過傳遞一個函數給service,然後使用javascript的new操作產生一個服務,也就是說將屬性附加到this上即可,使用這個方法要小心javascript的this陷阱,this並不總是指向執行函數本身,也可能指向頂級物件window。myModule.service('myService', function () { this.foo = 'bar'; });
provider()
實際上以上我們提到的factory和service被實作為provider上的語法糖,透過provider注入的服務可以作為提供者在配置區塊中使用,另外provider必須實作一個$get屬性。myMod.provider('greeting', function() { var text = 'Hello, '; this.setText = function(value) { text = value; }; this.$get = function() { return function(name) { //$get必须实现,可以返回一个函数或者一个对象 alert(text + name); }; }; }); myMod.config(function(greetingProvider) { greetingProvider.setText("Howdy there, "); }); myMod.run(function(greeting) { greeting('Ford Prefect'); });
constant(name,value)
constant主要用於註冊一個常數,value是一個值或json對象,通常這個常數主要用於配置經常使用的數據,constant配置的服務可以注入到config。angular.module('myApp', []) .constant('apiKey', '123123123') .config(function(apiKey) { // 在这里apiKey将被赋值为123123123 // 就像上面设置的那样 })
value(name,value)
value主要用於存放一些資料或方法以供使用,如果這個資料或方法需要被修改,就用value來建立服務,其中參數value是一個值或json物件。另外它不能夠依賴config。serviceApp.value('myConfig',{ name:'code_bunny', age:12, getId:function(){ return 1 } });
程式設計影片! !
以上是Angular如何創建服務? 5種方式了解一下!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

這篇文章繼續Angular的學習,帶大家了解Angular中的元數據和裝飾器,簡單了解一下他們的用法,希望對大家有幫助!

Angular.js是一種可自由存取的JavaScript平台,用於建立動態應用程式。它允許您透過擴展HTML的語法作為模板語言,以快速、清晰地表示應用程式的各個方面。 Angular.js提供了一系列工具,可協助您編寫、更新和測試程式碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。 Node.js是一個基於ChromeV8引擎的JavaScript運行環境,可讓您在伺服器端執行JavaScript程式碼。要在Ub

這篇文章跟大家分享一個Angular實戰,了解一下angualr 結合 ng-zorro 如何快速開發一個後台系統,希望對大家有幫助!

angular中怎麼使用monaco-editor?以下這篇文章記錄下最近的一次業務中用到的 monaco-editor 在 angular 中的使用,希望對大家有幫助!

隨著網路的快速發展,前端開發技術也不斷改進與迭代。 PHP和Angular是兩種廣泛應用於前端開發的技術。 PHP是一種伺服器端腳本語言,可以處理表單、產生動態頁面和管理存取權限等任務。而Angular是一種JavaScript的框架,可以用來開發單一頁面應用程式和建構元件化的網頁應用程式。本篇文章將介紹如何使用PHP和Angular進行前端開發,以及如何將它們

這篇文章帶大家了解Angular中的獨立元件,看看怎麼在Angular中建立一個獨立元件,怎麼在獨立元件中導入已有的模組,希望對大家有幫助!
