在之前幾篇文章中,提到了angularjs幾個核心特性,今天繼續來看看ng的服務(service)。
首先服務是乙個單例,即無論這個服務被注入到任何地方,物件始終只有乙個例項。
其次這與我們自己定義乙個function然後在其他地方呼叫不同,因為服務被定義在乙個模組中,所以其使用範圍是可以被我們管理的。ng的避免全域性變數汙染意識非常強。
ng提供了30多個內建的服務,可以到api中 以及service api中進行檢視學習。我們依靠ng的依賴注入機制把服務注入到controller、指令或者是其他服務中,對服務進行使用。
如同指令一樣,系統內建的服務以$開頭,我們也可以自己定義乙個服務。定義服務的方式有如下幾種:
※ 使用module的factory方法
※ 使用module的service方法
※使用系統內建的$provide服務
用**說明如下:
var yxmtestservices = angular.module('yxmtestservices', );
yxmtestservices.factory('facetorytest', ['$window', //factory方式
function($window)
};
$window.alert('aaaa'); //內建服務可以注入
return test;
} ]);
yxmtestservices.service('servicetest', ['$window', //service方式
function($window)
} ]);
yxmtestservices.provider('providertest',[ //provider方式,內建服務不可以注入
function()
this.$get = function () ;
} ]);
congtroller呼叫定義模組,controller.js
//以注入的方式來呼叫yxmtestcontrollers.controller('testctrl',['$scope',"facetorytest","servicetest","providertest",
function($scope,facetory111,service111,provider111)
]);
'ngroute',
'yxmtestcontrollers', //上面定義的controller
'yxmtestservices' //上面自定義的服務
]);
html呼叫顯示
}}
}
值得注意的是,angular services依賴注入的規範:自定義的service要寫在內建的angular services之後,自定義的service之間是沒有先後順序的。
關於AngularJS學習整理 核心特性
接觸 學習angularjs已經三個多月了,隨著學習的深入,有些東西剛開始不明白,現在開始慢慢明白起來。於是,開始整理這幾個月的學習成果。要不又要忘了。步入正題。學習angular,首先得了解 熟知 掌握它的四大核心特性。一 mvc模式 model 模型 是應用程式中用於處理應用程式資料邏輯的部分,...
關於AngularJS學習整理 核心特性
接觸 學習angularjs已經三個多月了,隨著學習的深入,有些東西剛開始不明白,現在開始慢慢明白起來。於是,開始整理這幾個月的學習成果。要不又要忘了。步入正題。學習angular,首先得了解 熟知 掌握它的四大核心特性。一 mvc模式 model 模型 是應用程式中用於處理應用程式資料邏輯的部分,...
angularJS核心原理
一 angularjs優點和缺點 優點 1.1免去重複勞動 獲取元素 給元素加事件 建立元素 1.2接管ui angularjs根據資料建立ui元素,免去手工建立ui元素。1.3自動同步 根據資料個數建立對應的html元素。缺點 二 angularjs一切皆資料 三 angularjs三要素 4.1...