AngularJS在URL正下方显示列表
AngularJS display list right below the URL
所以我试图在点击它们的正下方的前端显示一个值列表。例如,假设我的前端有一个专辑列表:
album-name-1
album-name-2
album-name-3
当我单击专辑名称-1时,我需要专辑名称-1的曲目显示在专辑名称-1的正下方。当我单击专辑名称 2 时,我不希望看到要显示的专辑名称-1,而只在专辑名称 2 下方显示专辑名称 2 的曲目,依此类推。如下所示:
album-name-1
- track1
- track2
- track3
album-name-2
album-name-3
或者当我单击专辑名称-2时:
album-name-1
album-name-2
- track1
- track2
- track3
album-name-3
现在,使用我的代码,当我单击任何专辑时,它会在每个专辑下方显示曲目,即使它们不属于该专辑,如下所示:
album-name-1
- track1
- track2
- track3
album-name-2
- track1
- track2
- track3
album-name-3
- track1
- track2
- track3
这是我的HTML代码:
<div class="wrapper wrapper-content">
hello!
<div>
<ul ng-repeat="album in vm.albums">
<li><a ng-click="vm.getAlbumTracks(album)">{{album}}</a></li>
<ul ng-repeat="track in vm.albums.tracks">
<li><a ng-click="vm.displayForm(track)">{{track}}</a></li>
</ul>
</ul>
<a ng-click="vm.newFunction('RAVI')">Click Me!</a>
</div>
这是我的控制器:
FileUploadFormController.$inject = ['$http', '$log', '$scope', '$rootScope', 'APP_CONFIG'];
function FileUploadFormController ($http, $log, $scope, $rootScope, APP_CONFIG){
var vm = this;
vm.albums = init;
vm.albums.tracks = getAlbumTracks;
vm.newFunction = newFunction;
return init();
function init(){
$http.get('http://localhost:8080/api/albums').then(function(responseData){
// Parse the json data here and display it in the UI
$scope.vm.albums = responseData.data;
$log.debug(angular.toJson(responseData, true));
// console.log(vm.albums.tracks);
return vm.albums;
})
}
function getAlbumTracks(album, $scope){
$http.get('http://localhost:8080/api/albums/'+album).success(function(trackResponse){
//parse each album and get the track list
$scope.vm.albums.tracks = vm.albums.tracks.concat(trackResponse);
return vm.albums.tracks;
})
}
}
任何线索如何实现这一目标?
我认为你应该有这样的标记
<ul>
<li ng-repeat="album in vm.albums">
<a ng-click="vm.getAlbumTracks(album, $index);">{{album}}</a>
<ul ng-show="$index === vm.showingAlbumIndex">
<li ng-repeat="track in vm.albums.tracks"><a ng-click="vm.displayForm(track)">{{track}}</a></li>
</ul>
</li>
</ul>
<a ng-click="vm.newFunction('RAVI')">Click Me!</a>
在函数控制器中,分配属性vm.showingAlbumIndex
function getAlbumTracks(album, index){
vm.showingAlbumIndex = index;
//...
}
相关文章:
- 突出显示列表的父项,但不突出显示所有子项
- 如何随机显示列表项的顺序
- 在underscore.js中显示列表中的所有项目(使用Parse.com)
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- 用javascript在html显示列表中显示新成员
- 单击旧列表只显示上次创建的id,应在单击时显示列表id
- Ember-解决所有请求时显示列表
- 隐藏并显示列表中的元素
- 如何在 jquery 中的速率按钮下方显示消息状态
- 仅在单击下拉列表中的项目时显示列表框
- Ui自动完成不显示列表
- 单击按钮时隐藏并显示列表
- 在可滚动的库中显示列表
- 无序列表 jQuery 在固定位置显示列表中的选定项
- jQuery - 在其下方显示每个图像链接
- 不要在某些元素下方显示任何内容
- AngularJS在URL正下方显示列表
- 使用 ajax 显示列表
- 制作另一个窗体,该窗体将显示列表(自动完成)并将用作所选字段的值
- 在不使用按钮的情况下显示列表,带有挖空功能