欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Angular怎么創(chuàng)建服務(wù)

這篇文章將為大家詳細(xì)講解有關(guān)Angular怎么創(chuàng)建服務(wù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬主機(jī)、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,西云機(jī)房,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

config配置塊

Angular應(yīng)用的運(yùn)行主要分為兩部分:app.config()和app.run(),config是你設(shè)置任何的provider的階段,從而使應(yīng)用可以使用正確的服務(wù),需要注意的是在配置塊中只有provider能被注入(只有兩個(gè)例外是$provide和$injector)。而且provider也只能在config中注入。Angular注入服務(wù)的5種方式中,只有通過provider和constant注入的服務(wù)可以在依賴到config中。

app.controller('MyController', function ($httpProvider) {
	//錯(cuò)誤,無法在控制器中注入服務(wù)提供者
});
app.config(function ($http) {
	//錯(cuò)誤,配置塊中只能注入服務(wù)
});

相關(guān)推薦:《angularjs教程》

關(guān)于一些內(nèi)置的服務(wù)

控制器函數(shù)是可以被注入的,但是控制器本身是不能被注入到任何東西里面去的,然而,有一個(gè)內(nèi)建的AngularJS服務(wù)叫做$controller,它負(fù)責(zé)設(shè)置你的控制器,調(diào)用myMod.controller(…)時(shí),你實(shí)際上是訪問了這個(gè)服務(wù)的provider。

代碼:

myMod.controller('MainController', function($scope) {
  // ...
});

實(shí)際上做了以下事情:

myMod.config(function($controllerProvider) {
  $controllerProvider.register('MainController', function($scope) {
// ...
  });
});

類似的還有filter和directive,filter會(huì)使用一個(gè)叫做$filter的服務(wù)以及它的provider $filterProvider,而directive使用一個(gè)叫做$compile的服務(wù)以及它的provider $compileProvidr。

服務(wù)的5中注入方式

factory()

依賴注入器將使用factory函數(shù)創(chuàng)建服務(wù)的實(shí)例,工廠函數(shù)返回一個(gè)對(duì)象。

myModule.factory('myService', function () {
	var myService = {};
	//添加myService的一些屬性和方法
	return myService;
});
service()

service注入通過傳遞一個(gè)函數(shù)給service,然后使用javascript的new操作生成一個(gè)服務(wù),也就是說將屬性附加到this上即可,使用這個(gè)方法要小心javascript的this陷阱,this并不總是指向執(zhí)行函數(shù)本身,也可能指向頂級(jí)對(duì)象window。

myModule.service('myService', function () {
	this.foo = 'bar';
});
provider()

實(shí)際上以上我們提到的factory和service被實(shí)現(xiàn)為provider上的語法糖,通過provider注入的服務(wù)可以作為提供者在配置塊中使用,另外provider必須實(shí)現(xiàn)一個(gè)$get屬性。

myMod.provider('greeting', function() {
  var text = 'Hello, ';

  this.setText = function(value) {
     text = value;
  };

  this.$get = function() {
     return function(name) {   //$get必須實(shí)現(xiàn),可以返回一個(gè)函數(shù)或者一個(gè)對(duì)象
         alert(text + name);
     };
  };
});

myMod.config(function(greetingProvider) {
  greetingProvider.setText("Howdy there, ");
});

myMod.run(function(greeting) {
  greeting('Ford Prefect');
});
constant(name,value)

constant主要用于注冊(cè)一個(gè)常量,value是一個(gè)值或者json對(duì)象,通常這個(gè)常量主要用于配置經(jīng)常使用的數(shù)據(jù),constant配置的服務(wù)可以注入到config。

angular.module('myApp', [])
.constant('apiKey', '123123123')
.config(function(apiKey) {
// 在這里apiKey將被賦值為123123123
// 就像上面設(shè)置的那樣
})
value(name,value)

value主要用于存放一些數(shù)據(jù)或方法以供使用,如果這個(gè)數(shù)據(jù)或方法需要被修改,就用value來創(chuàng)建服務(wù),其中參數(shù)value是一個(gè)值或者json對(duì)象。另外它不能夠依賴到config中。    

serviceApp.value('myConfig',{
    name:'code_bunny',
    age:12,
    getId:function(){
        return 1
    }
});

關(guān)于“Angular怎么創(chuàng)建服務(wù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

分享標(biāo)題:Angular怎么創(chuàng)建服務(wù)
標(biāo)題網(wǎng)址:http://chinadenli.net/article8/pgghip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航ChatGPT用戶體驗(yàn)App開發(fā)網(wǎng)站排名網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司