中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Angular怎么創建服務

發布時間:2021-05-10 10:32:34 來源:億速云 閱讀:135 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關Angular怎么創建服務,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

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) {
// ...
  });
});

類似的還有filter和directive,filter會使用一個叫做$filter的服務以及它的provider $filterProvider,而directive使用一個叫做$compile的服務以及它的provider $compileProvidr。

服務的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怎么創建服務”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五莲县| 韶关市| 湾仔区| 巴青县| 乐平市| 鞍山市| 康乐县| 平江县| 潼南县| 广德县| 家居| 普洱| 垫江县| 大港区| 庐江县| 连州市| 英吉沙县| 青阳县| 通城县| 东明县| 麻栗坡县| 绍兴市| 望奎县| 宜都市| 贵德县| 博白县| 文登市| 天长市| 无为县| 门源| 克拉玛依市| 启东市| 博乐市| 察隅县| 广元市| 商河县| 古交市| 四川省| 天气| 乳山市| 苏尼特右旗|