Heim >Web-Frontend >js-Tutorial >Implementieren Sie benutzerdefinierte Dienste mit AngularJS
Nehmen wir als Beispiel Cookies.
bower --save angular-cookies
'use strict'angular.module('app',['ui.router','ngCookies']);
'use strict'; angular.module('app').service('cache', ['$cookies', function($cookies){ this.put = function(key, value){ $cookies.put(key, value); }; this.get = function(key) { return $cookies.get(key); }; this.remove = function(key) { $cookies.remove(key); }; }]);
angular.module('app').factor('cache', ['$cookies', function($cookies){ //也就是说factor和service同时声明服务,作用是一样的,它们的区别在于我们调用factor的时候,factor可以在return对象之前可以声明一些私有的属性。如: var obj = {};//相当于一个私有属性,外部不可访问,而直接声明service是没有这个功能的。 //注意:factor和service不同,我们不能再this这个当前对象上面添加属性了,而是返回一个对象 //这个对象所带来的属性就是我们外面引用的factor可以引用的属性 return { put : function(key, value){ $cookies.put(key, value); }; get : function(key) { return $cookies.get(key); }; remove : function(key) { $cookies.remove(key); }; } }]);
bedeutet, dass Faktor und Dienst gleichzeitig Dienste deklarieren und die Wirkung gleich ist. Der Unterschied zwischen ihnen besteht darin, dass der Faktor beim Aufrufen von Faktor einige private Attribute vor dem Rückgabeobjekt deklarieren kann.
Wenn keine Notwendigkeit besteht, interne private Eigenschaften zu deklarieren, sind ihre Funktionen dieselben.
Man muss bedenken, dass der Faktor ein Objekt direkt zurückgeben muss, während der Dienst nur eine Funktion direkt zurückgeben kann.
'use strict'; angular.module('app').controller('positionCtrl',['$q','$http','$state','$scope','cache',function ($q,$http,$state,$scope,cache) { cache.put('to','day');//存入这个值 cache.remove('to'); //删除}]);
Das obige ist der detaillierte Inhalt vonImplementieren Sie benutzerdefinierte Dienste mit AngularJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!