ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJS を使用してカスタム サービスを実装する

AngularJS を使用してカスタム サービスを実装する

一个新手
一个新手オリジナル
2017-09-23 09:54:311679ブラウズ

クッキーを例に挙げてみましょう。

ステップ 1: まずコンソールを開き、bower を使用して angular-cookies をインストールします

bower --save angular-cookies

ステップ 2: サービス ディレクトリに cache.js ファイルを作成します。

ステップ 3: angular-cookies モジュールをindex.html に導入します。

ステップ 4: app.js に ngCookies 依存関係を追加します。

'use strict'angular.module('app',['ui.router','ngCookies']);

ステップ5:cache.jsで$cookiesサービスを呼び出す

方法1:serviceサービスメソッド

'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);
    };
}]);

方法2:facotryサービスファクトリメソッド

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);
            };        
    }
}]);

つまり、factorとserviceは同時にサービスを宣言しますこれらは同じですが、違いは、factor を呼び出すときに、オブジェクトを返す前にいくつかのプライベート属性を宣言できることです。
内部プライベートプロパティを宣言する必要がない場合、それらの機能は同じです。
覚えておく必要があるのは、因子はオブジェクトを直接返す必要があるのに対し、サービスは関数を直接返すことができるということです。

ステップ 6: 使用するときは、

'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'); //删除}]);
などのコントローラーでこのサービス キャッシュを宣言します。

以上がAngularJS を使用してカスタム サービスを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。