我正在使用AngularJS,我想在我的控制器中设置一些配置变量。
例如:
$rootScope.config.showPosts.users = true;
$rootScope.config.showPosts.businesses = false;
$rootScope.config.showAds.businesses = true;
声明"嵌套"的正确方法是什么?这些属性?目前我有:
$rootScope.config = [];
$rootScope.config.showPosts = [];
$rootScope.config.showAds = [];
// ^ as you can see, I am declaring each key of the array individually :(
$rootScope.config.showPosts.users = true;
$rootScope.config.showPosts.businesses = false;
$rootScope.config.showAds.businesses = true;
在设置之前,我不必单独声明每个级别的数组,是吗?提前致谢。
答案 0 :(得分:3)
您可以使用对象litteral:
rootScope.config = {
showPosts: {
users: true,
businesses: false
},
showAds: {
businesses: true
}
};
答案 1 :(得分:1)
问题是您尝试在property
上设置array
。
您写道:
$rootScope.config.showPosts = [];
然后你试着写:
$rootScope.config.showPosts.users = true;
所以$rootScope.config.showPosts
应该是object
而不是array
。像这样更改你的代码:
$rootScope.config = {};
$rootScope.config.showPosts = {};
$rootScope.config.showAds = {};
在设置之前,我不必单独声明每个级别的数组,是吗?
不,您不需要单独声明这些对象,您可以在一个语句中声明整个配置object
,如另一个答案所示。