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的兼容各种浏览器的iframe自适应高度的脚本
Aug 13 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
javascript清空table表格的方法
May 14 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
使用Dropzone.js上传的示例代码
Oct 10 Javascript
js 数组详细操作方法及解析合集
Jun 01 Javascript
小程序实现背景音乐播放和暂停
Jun 19 Javascript
JS制作简易计算器的实例代码
Jul 04 Javascript
如何在JavaScript中等分数组的实现
Dec 13 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP比你想象的好得多
2014/11/27 PHP
给ECShop添加最新评论
2015/01/07 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PHP时间函数使用详解
2019/03/21 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python中GIL的使用详解
2018/10/03 Python
python 调试冷知识(小结)
2019/11/11 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
Python如何实现单例模式
2016/06/03 面试题
奖学金自我鉴定范文
2013/10/03 职场文书
护理专业毕业生推荐信
2013/10/31 职场文书
日语系毕业生推荐信
2013/11/11 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
党员培训思想汇报
2014/01/07 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
余世维讲座观后感
2015/06/11 职场文书
父母教会我观后感
2015/06/17 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技