AngularJS异步问题如何从另一个组件中加载数据?
创始人
2024-10-27 13:30:17
0

在AngularJS项目中,可以通过以下两种方法从另一个组件中加载数据:

  1. 使用服务: 创建一个服务,用于在不同的组件之间共享数据。在需要加载数据的组件中注入这个服务,并调用其方法获取数据。

// Service angular.module('myApp').service('dataService', function($http) { var data = {};

this.getData = function() { return $http.get('/api/data').then(function(response) { data = response.data; }); };

this.getDataInService = function() { return data; }; });

// Component A angular.module('myApp').component('componentA', { templateUrl: 'componentA.html', controller: function(dataService) { var ctrl = this;

ctrl.$onInit = function() {
  dataService.getData().then(function() {
    ctrl.data = dataService.getDataInService();
  });
};

} });

// Component B angular.module('myApp').component('componentB', { templateUrl: 'componentB.html', controller: function(dataService) { var ctrl = this;

ctrl.data = {};

dataService.getData().then(function() {
  ctrl.data = dataService.getDataInService();
});

} });

  1. 使用事件广播: 在加载数据的组件中,使用$scope.$broadcast()方法广播一个事件,另一个组件可以通过$scope.$on()方法监听这个事件并获取数据。

// Component A angular.module('myApp').component('componentA', { templateUrl: 'componentA.html', controller: function($scope) { var ctrl = this;

$scope.$on('dataLoaded', function(event, data) {
  ctrl.data = data;
});

} });

// Component B angular.module('myApp').component('componentB', { templateUrl: 'componentB.html', controller: function($http, $scope) { var ctrl = this;

ctrl.loadData = function() {
  $http.get('/api/data').then(function(response) {
    $scope.$broadcast('dataLoaded', response.data);
  });
};

ctrl.loadData();

} });

相关内容

热门资讯

一分钟了解!wepoker破解... 一分钟了解!wepoker破解版内购(辅助挂)wpk透视插件(往昔真的是有挂);1、超多福利:超高返...
实测发现!鸿狐大厅脚本(辅助挂... 实测发现!鸿狐大厅脚本(辅助挂)fishpoker透视底牌(本然真的是有挂),鸿狐大厅脚本是用手机号...
一分钟揭秘!微乐小程序游戏破解... 一分钟揭秘!微乐小程序游戏破解器下载(辅助挂)德普之星透视(本然真的有挂);AI辅助机器人普及解说快...
必看攻略!丽水都莱大菠萝辅助(... 必看攻略!丽水都莱大菠萝辅助(辅助挂)wepoker透视脚本免费app(好像有挂);人气非常高,ai...
玩家必备教程!连连看辅助器手机... 玩家必备教程!连连看辅助器手机版(辅助挂)wepoker开脚本视频(竟然有挂);致您一封信;亲爱连连...
推荐一款!创思维正版辅助器下载... 推荐一款!创思维正版辅助器下载(辅助挂)聚星ai辅助工具收费多少(一直存在有挂);致您一封信;亲爱创...
最新研发!全民比鸡bug(辅助... 最新研发!全民比鸡bug(辅助挂)aapoker辅助怎么用(最初有挂);超受欢迎的全民比鸡bug稳赢...
盘点一款!八张透视辅助(辅助挂... 盘点一款!八张透视辅助(辅助挂)we-poker辅助器(确实真的是有挂);致您一封信;亲爱八张透视辅...
今日头条!微乐自建房怎么提高胜... 今日头条!微乐自建房怎么提高胜率(辅助挂)wepoker是不是有人用挂(竟然真的有挂);暗藏猫腻!微...
我来教教你!透视盒子(辅助挂)... 我来教教你!透视盒子(辅助挂)aapoker插件(本然是有挂);大家肯定在之前透视盒子或者透视盒子中...