2017-11-06 4 views
0

저는 AngularJS를 사용하고 있으며 컨트롤러에 일부 구성 변수를 설정하려고합니다. 예를 들어Javascript/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; 

내가 설정하기 전에 배열의 모든 수준을 개별적으로 선언 할 필요는 없습니까? 그렇습니다. 미리 감사드립니다.

답변

3

당신은 객체 litteral를 사용할 수 있습니다

rootScope.config = { 
    showPosts: { 
    users: true, 
    businesses: false 
    }, 
    showAds: { 
    businesses: true 
    } 
}; 
+0

굉장히 좋아 보인다. – Leon

1

문제는 당신이 propertyarray 오버를 설정하려고하는 것입니다.

당신이 쓴 :

$rootScope.config.showPosts = []; 

은 그럼 당신은 작성하려고 :
$rootScope.config.showPosts.users = true; 

그래서 $rootScope.config.showPosts 대신 여기에 arrayobject해야한다. 다음과 같이 코드를 변경합니다

$rootScope.config = {}; 
$rootScope.config.showPosts = {}; 
$rootScope.config.showAds = {}; 

나는 배열 내가 그것을 설정 개별적 전에, 내가 할의 모든 레벨을 선언해야하지?

아니요 이러한 객체를 개별적으로 선언 할 필요가 없습니다. 다른 답변에 표시된 것처럼 하나의 명령문에 전체 구성 object을 선언 할 수 있습니다.