我試圖將名爲'鏈接'的屬性添加到給定的對象列表的每個子對象。 該鏈接被認爲是基地址 +每個'roleName'在孩子的上面。角度爲每個如何將屬性添加到每個子對象
在我的情況下,鏈接必須是這樣的:
var baseUrl = 'http://baseUrl.com/';
link = baseUrl/Images/html5.png
或
link = baseUrl/Images/Framework/Javascript/angularJs.jpg
這裏的初始列表:
[
{
"roleName": "Images",
"roleId": "Images",
"children": [
{
"roleName": "html5.png",
"roleId": "html5.png"
},
{
"roleName": "css3.png",
"roleId": "css3.png"
},
{
"roleName": "Javascript",
"roleId": "Javascript",
"children": [
{
"roleName": "Framework",
"roleId": "Framework",
"children": [
{
"roleName": "angularJs.jpg",
"roleId": "angularJs.jpg"
},
{
"roleName": "emberJs.jpg",
"roleId": "emberJs.jpg"
}
]
}
]
},
{
"roleName": "Php",
"roleId": "Php",
"children": [
{
"roleName": "Framework",
"roleId": "Framework",
"children": [
{
"roleName": "laravel.jpg",
"roleId": "laravel.jpg"
}
]
},
{
"roleName": "php5.jpg",
"roleId": "php5.jpg"
}
]
}
]
}
]
我的問題是,我不知道如何爲每個孩子添加一個鏈接,以及如何動態添加「圖片」,而不是像我正在做的那樣噸。
這裏的功能,我有但我只添加鏈接父:
var addLinks = function(listOfObjects, baseUrl){
angular.forEach(listOfObjects, function(object){
if(object.children !== 'undefined'){
angular.forEach(object.children, function(item){
item.link = baseUrl+'Images/'+item.roleName;
});
}
});
return listOfObjects;
};
這裏有一個鏈接到我的Plunker,如果有人想幫助,並感謝您提前。
編輯:Vikash答案是不好
我只想在對象兒童的鏈接時,有沒有孩子
例如:
{
'roleName': 'Php',
'roleId': 'Php',
'children': [
{
'roleName': 'Framework',
'roleId': 'Framework',
'children': [
{
'roleName': 'laravel.jpg',
'roleId': 'laravel.jpg',
'link': 'http://exmaple.com/Images/Php/Framework/laravel.jpg'
}
]
},
{
'roleName': 'php5.jpg',
'roleId': 'php5.jpg',
'link': 'http://exmaple.com/Images/Php/php5.jpg'
}
]
}
您可以編寫一個遞歸函數來做到這一點。 – Vikash
我會建議重新考慮你的數據建模。你所要求的應該是一個功能,而不是你裝飾「清單」的財產。但是,考慮到您使用的層次結構,即使這樣也會很困難。 – Sinetheta
檢查你想要的東西http://plnkr.co/edit/uiUoO38dmp0XyOwWsEpS?p=preview –