angularJs在多个控制器中共享服务数据的方法


Posted in Javascript onSeptember 30, 2018

如下所示:

<div ng-app="module">
 <div ng-controller="ctrl1">
  <table border="1" width="600">
   <tr>
    <td>网站名称</td>
    <td>网址</td>
   </tr>
   <tr ng-repeat="v in data.webs">
    <td>{{v.name}}</td>
    <td>{{v.url}}</td>
   </tr>
  </table>
 </div>
 <hr>
 <div ng-controller="ctrl2">
  <table border="1" width="600">
   <tr>
    <td>网站名称</td>
    <td>网址</td>
   </tr>
   <tr ng-repeat="v in data.webs">
    <td>{{v.name}}</td>
    <td>{{v.url}}</td>
   </tr>
  </table>
  <h1>{{web.name}}</h1>
  <button ng-click="removeAll()">删除所有数据</button>
 </div>
</div>
<script>
 var m = angular.module('module', []);
 //定义服务
 m.factory('videoServer', ['$http', function ($http) {
  var obj = {
   data: {webs:[]},
   //所有数据
   all: function () {
    return $http({url: '1.php'}).then(function (response) {
     obj.data.webs = response.data;
     return obj.data;
    });
   },
   //获取一条数据
   find: function (id) {
    return this.all().then(function (data) {
     for (var i = 0; i < data.length; i++) {
      if (data[i].id == id) {
       return data[i];
      }
     }
    });
   },
   //删除所有数据
   flush: function () {
    obj.data.webs=[];
   }
  };
  return obj;
 }]);
 //控制器ctrl1
 m.controller('ctrl1', ['$scope', 'videoServer', function ($scope, videoServer) {
  videoServer.all().then(function (data) {
   $scope.data = data;
  });
 }]);

  //控制器ctrl2
 m.controller('ctrl2', ['$scope', 'videoServer', function ($scope, videoServer) {
  videoServer.all().then(function (data) {
   $scope.data = data;
  });
  videoServer.find(1).then(function (data) {
   $scope.web = data;
  })
  $scope.removeAll=function(){
   videoServer.flush();
  }
 }]);
</script>

1.php

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

以上这篇angularJs在多个控制器中共享服务数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
给before和after伪元素设置js效果的方法
Dec 04 Javascript
JS变量及其作用域
Mar 29 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
给vue项目添加ESLint的详细步骤
Sep 29 Javascript
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
js实现轮播图的完整代码
Oct 26 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
express express-session的使用小结
Dec 12 Javascript
vue使用swiper实现中间大两边小的轮播图效果
Nov 24 Javascript
Javascript如何实现扩充基本类型
Aug 26 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
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 #Javascript
You might like
php adodb连接不同数据库
2009/03/19 PHP
php魔术变量用法实例详解
2014/11/13 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
巧用canvas
2017/01/21 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
python正则分组的应用
2013/11/10 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
pytorch中图像的数据格式实例
2020/02/11 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
公司董事长职责
2013/12/12 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
员工年终自我评价
2014/09/14 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
商业用房租赁协议书
2014/10/13 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
升学宴家长致辞
2015/07/27 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang