最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 22:06:35
文档

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

angularJs在多个控制器中共享服务数据的方法:如下所示: <div ng-app=module> <div ng-controller=ctrl1> <table border=1 width=600> <tr> <td>网站名称</td> <td>网址</td> </tr>
推荐度:
导读angularJs在多个控制器中共享服务数据的方法:如下所示: <div ng-app=module> <div ng-controller=ctrl1> <table border=1 width=600> <tr> <td>网站名称</td> <td>网址</td> </tr>

如下所示:

<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在多个控制器中共享服务数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

文档

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

angularJs在多个控制器中共享服务数据的方法:如下所示: <div ng-app=module> <div ng-controller=ctrl1> <table border=1 width=600> <tr> <td>网站名称</td> <td>网址</td> </tr>
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top