gpt4 book ai didi

http - 如何使用工厂/服务在 angularjs 中的多个 Controller 之间共享信息?

转载 作者:可可西里 更新时间:2023-11-01 16:50:17 26 4
gpt4 key购买 nike

我试图在应用程序启动时加载 JSON,并在我的所有 Controller 之间传播数据。我知道这不是很难做到,但我对我读过的所有文章/答案感到困惑,因为它们使用的语法与我不同,有人可以指导我如何做到这一点吗?

我目前正在让 Controller 制作 $http.get :

myApp = angular.module("myApp", [])

myApp.controller "HomeCtrl", ($scope, $http, $routeParams) ->
$http.get('gethome.php').success (data) ->
$scope.home = data

但是我必须在每个我想访问该数据的 Controller 中重复一遍

最佳答案

我会建议您将内存模式与服务一起使用,并在 Controller 中重用服务

请检查下面的示例代码

  var app = angular.module('plunker', []);

app.service('cache', function ($http,$q) {
var mycache={};
return {
getdata: function (key) {
var deferred = $q.defer();
if (mycache[key]) {
deferred.resolve(mycache[key]);
}
else {
$http.get('TextFile.txt').then(function (data) {
mycache[key] = data.data;
deferred.resolve(mycache[key]);
});
}
return deferred.promise;
}
}
});


app.controller('test', function ($scope, cache) {
cache.getdata('cache').then(function (data) {
$scope.data = data;
});
});

app.controller('test1', function ($scope, cache) {
//since data is already cached now it will server the cached data
cache.getdata('cache').then(function (data) {
$scope.data = data;
});
});

关于http - 如何使用工厂/服务在 angularjs 中的多个 Controller 之间共享信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17472097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com