2017-11-06 20 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という構成全体をもう1つの答えに示すように1つのステートメントに宣言できます。

関連する問題