Tworzę aplikację z Spotify API. aplikacja może zrobić: 1. albumy znaleźć, nazwy wykonawcy przez pole wprowadzania 2. Po albumy są pokazane użytkownik może kliknąć tytuł albumu i widzieć utworów tego albumuZagnieżdżone ui-view AngularJS do powtórzenia polecenia ng
stworzyłem 2 widoki: 1. widok albumów 2. widok utworów, widok dzieci z albumów.
Chciałbym pokazać utwór w widoku ui-klikniętego albumu - z identyfikatorem - w powtórce ng albumów. ale wynik jest taki, że mam tę samą listę ścieżek klikniętego albumu na całej liście albumów. jak mogę wyświetlić ui-view albumu utworu w klikniętym kontenerze na album będącym wynikiem dyrektywy ng-repeat?
tutaj kod:
trasy:
------
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('albums', {
url: '/',
templateUrl: 'views/main.html',
controller: 'MainCtrl'
}).
state('albums.tracks', {
url: ':id/tracks',
templateUrl: 'views/tracks.html',
controller: 'TracksCtrl'
});
})
-----
Albumy zobaczyć:
<div ng-if="albums.items">
<h1>{{searchedArtist}}'s Album List:</h1>
<!-- albums ng-repeat -->
<div ng-repeat="album in albums.items | unique:'name'" id="{{album.id}}">
<img ng-src="{{album.images[1].url}}" width="100">
<!-- the action to translate the state to tracks view -->
<a ui-sref="albums.tracks({id : album.id})">{{album.name}}</a>
<!-- tracks view -->
<div ui-view></div>
</div>
Główny kontroler albumy:
angular.module('spotifyAngularApp')
.controller('MainCtrl', function ($scope, spotifyService) {
var options = {
'limit': 10
};
$scope.searchAlbums= function() {
var sanitizeArtist = $scope.artist.split(' ').join('+');
$scope.searchedArtist = $scope.artist;
spotifyService.search(sanitizeArtist, 'album', options).then(function(data) {
$scope.albums = data.albums;
});
};
});
Kontroler utworów:
angular.module('spotifyAngularApp')
.controller('TracksCtrl', function ($scope, $stateParams, spotifyService) {
console.log($stateParams);
spotifyService.albumTracks($stateParams.id).then(function(data){
$scope.tracks = data.items;
});
});
Może to być interesujące dla Ciebie: http://stackoverflow.com/a/24902144/1679310. Istnieje przykład jak obsłużyć scenariusz z powtórzeniem ... może to może dać pewne pomysły ... –
Dziękujemy za referencje, to działa, ale kiedy wprowadzisz nowy stan, ui-router szuka szablonu URL i ui-view. ale próbowałem dowiedzieć się, jak dodać w ng-powtórzyć ui-view z innym powtórzeniem ng wewnątrz. – davelab
można utworzyć plunkr, gdzie doszedłeś z przykładowymi danymi, byłoby bardziej pomocne – vijay