gpt4 book ai didi

javascript - 如何在多个js文件中初始化angularjs的$rootScope

转载 作者:行者123 更新时间:2023-12-03 11:36:47 25 4
gpt4 key购买 nike

抱歉,我的英语不好。我有 angularjs 应用程序,有很多页面和表单。对于任何页面,使用该页面的模型创建文件。示例:

file userDict.js:

$rootScope.dicts.user = {
userTypes : { ... },
maxAge : ...,
minAge : ... ,
...
}

file companyDict.js:

$rootScope.dicts.company = {
companyTypes : { ... },
blabla : ...,
blabla : ... ,
...
}

files *Dict.js
....
....

UserController我用$rootScope.dicts.user ,在 CompanyController -$rootScope.dicts.company .

这样做是为了便于分离大型模型。

但是如何在每个 js 模型文件中调用 $rootScope.dicts.??? = { ... }

如何用模型包装每个文件,并在初始化应用程序期间调用它们?

例如,如果我使用plane jQuery 编写它,我会对每个文件都这样做

file userDict.js:

$(document).ready(function(){

$rootScope.dicts.user = {
userTypes : { ... },
maxAge : ...,
minAge : ... ,
...
}
});

最佳答案

如果我清楚地了解您想要什么,您有两种选择。

1)在第一个选项中,您应该这样做:

angular.module('myApp', [])
.run(function($rootScope) {
$rootScope.dicts = {};
$rootScope.dicts.user = "rootScope";
})
.controller('myCtrl', function($scope, $rootScope) {
$scope.userDict = $rootScope.dicts.user;
})
.controller('myCtrl2', function($scope, $rootScope) {
$scope.userDict = $rootScope.dicts.user;
});

这是JSFiddle对于这个例子。

此代码提供了从任何 Controller 获取 $rootScope 变量的可能性。

但是您不要忘记将 $rootScope 注入(inject) Controller 。

2) 第二种选择是使用共享服务

myApp.factory('sharedService', function () {
var sharedService = {};
sharedService.dict = {};
sharedService.dict.user = "any value";

return sharedService;
});

myApp.controller('FirstCtrl', function ($scope, sharedService) {
$scope.user = sharedService.dict.user;
});

myApp.controller('SecondCtrl', function ($scope, sharedService) {
$scope.user = sharedService.dict.user;
});

关于javascript - 如何在多个js文件中初始化angularjs的$rootScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462454/

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