对angularJs中2种自定义服务的实例讲解


Posted in Javascript onSeptember 30, 2018

本篇文章介绍2种自定义服务的方式,一种是用factory,一种是用service

一、首先介绍使用factory来进行自定义服务

1.html

<div ng-app="module" ng-controller="ctrl">
  <table border="1" width="600">
    <tr>
      <td>网站名称</td>
      <td>网址</td>
    </tr>
    <tr ng-repeat="v in data">
      <td>{{v.name}}</td>
      <td>{{v.url}}</td>
    </tr>
  </table>
</div>
<script>
  var m = angular.module('module', []);
  //factory定义服务videoServer
  m.factory('videoServer', ['$http', function ($http) {
    return {
      /* 第一种方式      
        get: function (callback) {
        $http({url: '1.php'}).then(function (response) {
          callback(response);
        });
      }*/
      //第二种方式
      all: function () {
        return $http({url: '1.php'});
      }
    };
  }]);
  //在控制器中使用videoServer服务,与自带的服务使用方式一样
  m.controller('ctrl', ['$scope', 'videoServer', function ($scope, videoServer) {
    /*第一种方式
    videoServer.get(function (response) {
      $scope.data = response.data;
    });
    */
    //第二种方式
    videoServer.all().then(function (response) {
      $scope.data = response.data;
    });
  }]);
</script>

1.php

<?php
$data = [
  [ 'name' => '百度', 'url' => 'www.baidu.com' ],
  [ 'name' => '谷歌', 'url' => 'google.com' ],
];
echo json_encode($data,JSON_UNESCAPED_UNICODE);

二、使用service来进行自定义服务

2.html

<div ng-app="module" ng-controller="ctrl">
  <table border="1" width="600">
    <tr>
      <td>网站名称</td>
      <td>网址</td>
    </tr>
    <tr ng-repeat="v in data">
      <td>{{v.name}}</td>
      <td>{{v.url}}</td>
    </tr>
  </table>
</div>
<script>

  var m = angular.module('module', []);
  //service自定义服务videoServer
  m.service('videoServer', ['$http', function($http){
    this.get=function(){
      return $http({method:'get',url:'2.php'}).then(function(response){
        return response.data;
      })
    }
  }])
   //在控制器中使用videoServer服务,与自带的服务使用方式一样
  m.controller('ctrl', ['$scope', 'videoServer', function ($scope, videoServer) {
    videoServer.get().then(function (data) {
      $scope.data = data;
    });
  }]);
</script>

2.php

<?php
$data = [
  [ 'name' => '百度', 'url' => 'www.baidu.com' ],
  [ 'name' => '谷歌', 'url' => 'google.com' ],
];
echo json_encode($data,JSON_UNESCAPED_UNICODE);

以上这篇对angularJs中2种自定义服务的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 Javascript
js判断鼠标同时离开两个div的思路及代码
May 31 Javascript
jQuery实现延迟跳转的方法
Jun 05 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
Dec 15 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 Javascript
详解Vue.use自定义自己的全局组件
Jun 14 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 #Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 #Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 #Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
Sep 30 #Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 #jQuery
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 #Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 #Javascript
You might like
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
PHP中的use关键字概述
2014/07/23 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
Python入门之三角函数全解【收藏】
2017/11/08 Python
django使用html模板减少代码代码解析
2017/12/12 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
Python 如何查找特定类型文件
2020/08/17 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
北京SQL新华信咨询
2016/09/30 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
大学毕业感言100字
2014/02/03 职场文书
保护环境倡议书300字
2014/05/19 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
毕业实习单位意见
2015/06/04 职场文书
院系推荐意见
2015/06/05 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python