저는 현재 음악 카탈로그를 작업 중이며 사용자가 아티스트 및 장르 목록에서 카탈로그를 필터링 할 수있는 기능을 구현하려고합니다.
목록 :
<ul class="artists">
<li class="title">
<h5>Artists</h5>
<ul class="sub-menu">
<li ng-repeat="artist in music | orderBy:'-views'">
<p ng-click="select(artist.artist)">{{artist.artist}}</p>
</li>
</ul>
</li>
</ul>
사용자 지정 필터를 만들려고했지만 개념을 이해하지 못했습니다. 내가 할 수 있었던 일은 선택한 선택에서 값을 얻는 것입니다.
// value from ng-click
$scope.select = function(value){
filterBy = value;
}
필터에 추가 할 수 있다는 것을 알고 있습니다. 추가하여 ng-repeat
ng-repeat="artist in music | filter: {artist:'artistName' | orderBy:'-views'"}
하지만 아티스트를 변경하려면 어떻게해야하나요 : '가치' 를 목록에서 선택한 항목으로 변경
이것이 내가 필터링하려는 주요 영역입니다.
<div class="item" ng-repeat="artist in music | orderBy:'-views'">
<div class="img">
<img ng-src="{{artist.image}}"/>
</div>
<div class="info">
<h6>{{artist.artist}}</h6>
<p>{{artist.songName}}</p>
</div>
</div>
보기가로드되면 모든 항목이 표시되어야하며 사용자가 원하는 경우 목록에서 아티스트 또는 장르를 선택하여 해당 결과로 필터링 할 수 있습니다. 내 생각은 클릭 함수 안에 사용자 지정 필터 기능을 배치하는 것이었기 때문에 사용자가 목록에서 선택하면 클릭 함수의 값이 사용자 지정 필터로 구문 분석되고 올바른 값으로 필터를 업데이트 할 수 있습니다. 그러나 나는 이것을 구현할 수 없었다.
나는 angular.js를 처음 접했기 때문에 올바르게 설명하지 않았다면 내 프로젝트를 복제하는 JSfiddle입니다.
http://jsfiddle.net/0n2qptg6/5/
도움, 제안, 비판에 미리 감사드립니다.
$ scope에 필터를 할당해야 음악 앨범 목록의 필터로 사용할 수 있습니다.
$scope.selectArtist = function(value){
//pass from ng-click
$scope.filterByArtist = value;
alert(filterBy);
}
$scope.selectGenre = function(value){
//pass from ng-click
$scope.filterByGenre = value;
alert(filterBy);
}
그런 다음 음악 앨범 목록에 필터를 적용하십시오.
<div class="item" ng-repeat="artist in music |
filter:{ artist: filterByArtist, genre: filterByGenre } |
orderBy:'-views'">
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다