我曾经ng-repeat
渲染我的嵌套list
. 以始终显示和单击父级时显示list
的方式构建。folder
files
folder
问题是当我ng-show
用来显示files
所有folders
打开的而不是仅单击的。
例如
我只想扩展列表中单击的记录,而不是所有记录。我理解它为什么会发生,我正在寻找Angular
解决这个问题的方法。我怎样才能做到这一点?
我的代码
var webApp = angular.module('webApp', []);
//controllers
webApp.controller ('VotesCtrl', function ($scope, Votes) {
$scope.votes = Votes;
$scope.show = false;
$scope.expand = function() {
console.log("show")
$scope.show = true;
}
});
//services
webApp.factory('Votes', [function() {
//temporary repository till integration with DB this will be translated into restful get query
var votes = [
{
id: '1',
created: 1381583344653,
updated: '222212',
ratingID: '4',
rate: 5,
ip: '198.168.0.0',
status: 'Approved',
folder:[
{
id: '1',
created: 1381583344653,
updated: '222212',
ratingID: '4',
rate: 5,
ip: '198.168.0.0',
status: 'Approved',
},
{
id: '111',
created: 1381583344653,
updated: '222212',
ratingID: '4',
rate: 5,
ip: '198.168.0.0',
status: 'Approved'
}
]
},
{
id: '2',
created: 1382387322693,
updated: '222212',
ratingID: '3',
rate: 1,
ip: '198.168.0.1',
status: 'Approved',
folder:[
{
id: '2',
created: 1382387322693,
updated: '222212',
ratingID: '3',
rate: 1,
ip: '198.168.0.1',
status: 'Approved',
},
{
id: '22',
created: 1382387322693,
updated: '222212',
ratingID: '3',
rate: 1,
ip: '198.168.0.1',
status: 'Approved'
},
{
id: '222',
created: 1382387327693,
updated: '222212',
ratingID: '3',
rate: 1,
ip: '198.168.0.1',
status: 'Approved'
},
]
},
{
file:[
{
id: '231',
created: 1392387327693,
updated: '222212',
ratingID: '1',
rate: 1,
ip: '198.168.2.1',
status: 'Approved'
}
]
}
];
return votes;
}]);
HTML
<div>
<ul>
<li class="created">
<b>CREATED</b>
</li>
<li class="ip">
<b>IP ADDRESS</b>
</li>
</ul>
<ul ng-repeat="vote in votes" ng-click="expand()">
<li class="created">
{{vote.created|date}}
</li>
<li class="ip">
{{vote.ip}}
</li>
<ul ng-show="show" ng-repeat="file in vote.folder">
<li class="created">
{{file.created|date}}
</li>
<li class="ip">
{{file.ip}}
</li>
</ul>
<ul class="file" ng-repeat="file in vote.file">
<li class="created">
{{file.created|date}}
</li>
<li class="ip">
{{file.ip}}
</li>
</ul>
</ul>
</div>