通过AngularJs自定义服务实现代码共用实例

通过AngularJs自定义服务实现代码共用实例:

html部分:

01<body ng-app="app">
02    <div ng-controller="ctr2">
03        <table cellpadding="0" cellspacing="0">
04            <thead>
05            <tr>
06                <td>网站名称</td>
07                <td>网站地址</td>
08            </tr>
09            </thead>
10            <tbody>
11            <tr ng-repeat="(key, value) in data.data">
12                <td>{{value.webname}}</td>
13                <td>{{value.weburl}}</td>
14            </tr>
15            </tbody>
16        </table>
17        <button ng-click="deleteAll();">删除所有数据</button>
18    </div>
19</body>

JavaScript部分:

01<script type="text/javascript" src="http://www.zymseo.com/js/demo.js"></script>
02<script type="text/javascript" src="http://www.zymseo.com/js/angular.min.js"></script>
03<script type="text/javascript">
04    var m = angular.module('app', []);
05    m.factory('zymBlog', ['$http'function($http){
06        return {
07            'arryData' : {'data': []},
08            'get' function(){
09                var _this = this;
10                return $http({
11                    'url' './1.php',
12                    'method' 'post',
13                }).then(function(result){
14                    _this.arryData.data = result.data;
15                    return _this.arryData;
16                });
17            },
18            'removeAll' function(){
19                var _this = this;
20                _this.arryData.data = [];
21            }
22        }
23    }]);
24    m.controller('ctr2', ['$scope''zymBlog'function($scope, zymBlog){
25        zymBlog.get().then(function(result){
26            $scope.data = result;
27        });
28        $scope.deleteAll = function(){
29            zymBlog.removeAll();
30        }
31    }]);
32</script>

PHP部分:

1<?php
2    header('Content-type:text/html;charset="utf-8"');
3 
4    $arry array(
5        array('webname'=>'赵一鸣个人技术博客''weburl'=>'http://www.zymseo.com'),
6        array('webname'=>'太原雅辉装修网''weburl'=>'http://www.0351zhuangxiu.com')
7    );
8     
9    echo json_encode($arry);

以上代码实现的效果是通过自定义服务从后台获取数据,然后控制器中调用数据显示在html代码中。

如果自定义服务中的代码需要多个地方调用,按照之前的方法,统统写在控制器里边,那就是有多少个地方需要调用,就得有多少个控制器,然后代码就得写多少次,太繁琐了,而且后期维护成本太大。

如果把公用的代码写在服务里边,把这个服务单独做成一个js文件,我们只需要在需要调用这个数据的页面调用这个js文件就行,这就省下来好多的麻烦。

点击【删除所有数据】的按钮,实际上是清空了$scope.data引用的那个对象的data属性,这里涉及到对象的传址问题,具体可参考文章《JavaScript中传值与传址的概念解析》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值