AngularJS(1)中的5种服务

下面是我总结的初学AngularJS(1)中所涉及到的服务的5种模式:

        (1)工厂模式

        (2)构造器模式 

        (3)Provider

        下面2种是定义常量的时候用的:

        (4)value

        (5)constant

        备注:直接放在代码段里方便测试和学习

<!DOCTYPE html>
<html lang="en" ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <title>service</title>
    <script src="../../frameWork/js/angular.min.js"></script>
    <script>
        //创建模块
        var app = angular.module('myApp',[]);
        //创建控制器
        app.controller('oneController',function ($scope,facSer,serSer,proSer,urlVal,urlCon) {
            $scope.data = facSer.name;
            var val = facSer.findName();
            console.log(val);
            serSer.findData(function (data) {
                console.log(data);
            });
            proSer.findAll(function (data) {
                console.log(data);
            });
            console.log(urlVal);
            console.log(urlCon);
        });
        //创建服务
        //(1)工厂模式
        app.factory('facSer',function () {
            return {
                name:'joy',
                findName:function () {
                    return this.name
                }
            }
        });
        //(2)构造器模式
        app.service('serSer',function ($http) {
            this.url = '../stus.json';
            this.findData = function (fun) {
                $http.get(this.url).success(function (data) {
                    fun(data);
                });
            }
        });
        //(3)provider
        app.provider('proSer',function () {//(1)先用var val = new function()得到一个val实例对象
            console.log(this);//此时的this指向val       // Object {}
            this.url = '../stus.json';
            this.$get = function ($http) {//(2)用val这个对象去调用$get(),会返回一个对象var val1 = this.$get()
                console.log(this);//此时的this指向val1   // Object { url="../stus.json",  $get=function()}
                var self = this;//self也指向val1
                return {//(3)在val调用$get()的时候有一个返回值(对象)
                    findAll:function (fun) {//(4)当这个返回值(对象)去调用findAll()的时候,this指向这个返回值(对象)
                        console.log(this);//  Object { findAll=function()}
                      $http.get(self.url).success(function (data) {
                          fun(data);
                      });
                    }
                }
            }
        });
        //定义常量
        //(4)value
        app.value('urlVal','http://127.0.0.1');
        //(5)constant
        app.constant('urlCon','http://127.0.0.2');
    </script>
</head>
<body>
    <div ng-controller="oneController">{{data}}</div>
</body>
</html>

 

转载于:https://my.oschina.net/yj1993/blog/1490364

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值