gpt4 book ai didi

javascript - $rootScope 并将数据从 Controller 传递到服务

转载 作者:行者123 更新时间:2023-11-29 16:11:52 25 4
gpt4 key购买 nike

我正在使用 angular js 并且有一个看起来像这样的 Controller

myApp = angular.module("myApp.controllers", []);
myApp.controller("ScheduleCtrl", function($scope, $http, ScheduleService){
$scope.hours = 4;
ScheduleService.test();
ScheduleService.initializeSchedule();
});

和一个看起来像这样的服务(在另一个文件中)

myApp = angular.module('myApp.services', []);
myApp.factory('ScheduleService', ['$rootScope', function($rootScope){

return {
test :
function(){
alert("Test");
},
initializeSchedule :
function(){
alert($rootScope.hours);
}
};
});

为了确保每个人都正确地从服务连接到 Controller ,第一次调用我的 Controller 内的“test()”会在警告框中产生所需的输出。然而,对于下一个函数,现在应该是警告“4”,而不是警告“未定义”。

我如何使用 $rootScope 或其他东西来将范围变量用于我的服务。

最佳答案

您需要将$rootScope 注入(inject)您的 Controller 并使用$rootScope 而不是$scope。 DEMO

myApp.controller("ScheduleCtrl", function($scope, $rootScope, $http, ScheduleService){
$rootScope.hours = 4;
ScheduleService.test();
ScheduleService.initializeSchedule();
});

但在这种情况下您不需要使用$rootScope。您可以将数据作为参数传递到服务函数中。

return {
test :
function(){
alert("Test");
},
initializeSchedule :
function(hours){
alert(hours);
}
};

关于javascript - $rootScope 并将数据从 Controller 传递到服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25457859/

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