オブジェクトのオブジェクトに角を使用し、categoryOne
のコンテンツが自動的にページに読み込まれます。ボタンがクリックされた場合、コントローラの機能を呼び出して、loadContent
オブジェクトのオブジェクトの下にある機能を呼び出して、categoryOne
のコンテンツをページから削除し、categoryTwo
の内容をその場所に挿入します。動的変数をオブジェクトパスに連結する方法
私のloadContent
の機能では、categoryTwo
のオブジェクトcontent
の各オブジェクトを対象にしたいと思います。つまり、$scope.layout.categories.categoryTwo.content.contentX.text
"X"は1または2になる可能性があります。
実際には、動的変数をオブジェクト内のものを対象とする「パス」に連結することについては何も見つかりません。上のパラグラフでは、 "X"は動的変数です。私が参照しているこの "パス"は、オブジェクトのオブジェクトから取得しようとしているものです。
tl; drオブジェクトのオブジェクトから取得しようとしているパスに動的変数を連結するにはどうすればよいですか?
ありがとうございました。あなたのためのバーチャルハイファイブ。
var app = angular.module("app1", []).controller("appCtrl", ["$scope", "$http", function($scope, $http)
{
$scope.layout =
{
"name": "test_proj",
"title": "Test Project",
"categories":
{
"categoryOne":
{
"heading": "Category 1",
"links":
{
"link1": "www.domain.com"
},
"content":
{
"content1":
{
"text": "This is some text.",
"help": "Help text 1."
},
"content2":
{
"text": "Apples.",
"help": "Help text 2."
}
}
},
"categoryTwo":
{
"heading": "Category 2",
"links":
{
"link1": "www.generic.com"
},
"content":
{
"content1":
{
"text": "More text here.",
"help": "Help text 1."
},
"content2":
{
"text": "Oranges.",
"help": "Help text 2."
}
}
}
}
}
$scope.loadContent = function()
{
var catLength = 0;
for (var key in $scope.layout.categories.categoryTwo.content)
{
if ($scope.layout.categories.categoryTwo.content.hasOwnProperty(key))
{
++catLength;
}
}
$(".cool-container").html("");
for (var x = 0; x < catLength; x++)
{
$(".cool-container").append("<p class='content'>" + $scope.layout.categories.categoryTwo.content.contentX.text + "</p>");
// Where it says "contentX" in the line above, I want "X" to be a dynamic variable that will make it "content1" and "content2"
}
}
}]);
[変数を使用して動的にアクセスオブジェクトのプロパティ]の可能な重複(http://stackoverflow.com/questions/4244896/dynamically-access-オブジェクトプロパティを使用する変数) –