真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬主機(jī)、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,西云機(jī)房,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(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能被注入(只有兩個例外是$provide和$injector)。而且provider也只能在config中注入。Angular注入服務(wù)的5種方式中,只有通過provider和constant注入的服務(wù)可以在依賴到config中。

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

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

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

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

代碼:

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

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

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

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

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

factory()

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

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

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

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

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

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

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

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

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

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

constant主要用于注冊一個常量,value是一個值或者json對象,通常這個常量主要用于配置經(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ù)或方法以供使用,如果這個數(shù)據(jù)或方法需要被修改,就用value來創(chuàng)建服務(wù),其中參數(shù)value是一個值或者json對象。另外它不能夠依賴到config中。    

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

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


網(wǎng)頁名稱:Angular怎么創(chuàng)建服務(wù)
URL地址:http://weahome.cn/article/pgghip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部