gpt4 book ai didi

angularjs - 为多个 Controller 初始化 $scope 变量 - AngularJS

转载 作者:行者123 更新时间:2023-12-03 08:16:57 29 4
gpt4 key购买 nike

我有 3 个执行类似任务的 Controller :

  • PastController 查询过去系统中断的 API。
  • CurrentController 查询当前系统中断的 API
  • FutureController 查询 future 系统中断的 API

它们都是独一无二的(尽管它们的功能相似)。然而,它们都以定义相同的 $scope 变量开始:

app.controller("PastController", function ($scope) {
$scope.Outages = "";
$scope.loading = 0;
$scope.nothing = 0;
$scope.error = 0;
//--- code continues ---//
});

app.controller("CurrentController", function ($scope) {
$scope.Outages = "";
$scope.loading = 0;
$scope.nothing = 0;
$scope.error = 0;
//--- code continues ---//
});

app.controller("FutureController", function ($scope) {
$scope.Outages = "";
$scope.loading = 0;
$scope.nothing = 0;
$scope.error = 0;
//--- code continues ---//
});

我可以使用服务或工厂在一个地方初始化这些变量而不是重复代码吗?

最佳答案

我没有测试代码,但这是我的想法,如果你想使用服务,希望它有用。

首先创建服务:

    app.service('systemService', function(){

// initialize object first
this.info = {};
this.initialize = function(){
// properties initialization
this.info.Outages = "";
this.info.loading = 0;
this.info.nothing = 0;
this.info.error = 0;

return this.info;
}

this.fooFunction = function() {
return "Hello!"
};

});

最后,你必须正确地将创建的服务注入(inject)到 Controller 中,并从服务中调用初始化函数:

app.controller("PastController",['$scope','systemService', function ($scope, systemService) {
$scope.info = systemService.initialize();
$scope.fooFunction = systemService.fooFunction();
}]);

...并在每个 Controller 中进行设置。

关于angularjs - 为多个 Controller 初始化 $scope 变量 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921071/

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