입력 할 사용자 문자열을 제출해야하는 양식이 있습니다. 제출되면 입력 값을 매개 변수로 사용하여 서비스를 통해 범위 값이 생성됩니다. 이 범위 값은 내보기의 나머지 부분을 채우는 데 사용됩니다.
이 스코프 값의 각 항목에 대해 일부 기능의 반환이 필요하다는 것을 제외하면 모든 것이 훌륭합니다. 뷰에서 호출하려고하지만 무한 루프가 발생합니다.
여기 진행하는 방법을 모릅니다. 너희들이 날 도와 줄 수있어?
view.pug
form(ng-submit='userGetTopTracksReq(user)')
.form-group
label(for='user') User:
input#user.form-control(ng-model='user' placeholder='user')
.form-group
button.btn.btn-success.btn-block(type='submit') Request
hr
table.table.table-sm.table-hover(ng-show='userGetTopTracksRes.toptracks')
thead
tr
th Artist
th Track
th Playcount
th Total Playcount
tbody
tr(ng-repeat='track in userGetTopTracksRes.toptracks.track')
td {{track.artist.name}}
td {{track.name}}
td {{track.playcount}}
td {{trackGetInfoReq(track.artist.name, track.name).track.playcount}}
controller.js
angular.module('app')
.controller('userGetTopTracksController', function(lastFmService, $scope, $rootScope) {
$scope.userGetTopTracksReq = (user) => {
$scope.userGetTopTracksRes = lastFmService.get({
api_key: $rootScope.api_key,
method: 'user.getTopTracks',
user: user,
format: 'json',
limit: 400
});
};
$scope.trackGetInfoReq = (artist, track) => {
return lastFmService.get({
api_key: $rootScope.api_key,
method: 'track.getInfo',
artist: artist,
track: track,
format: 'json'
});
};
});
템플릿에서 services.js
angular.module('app')
.factory('lastFmService', function($resource) {
return $resource('http://ws.audioscrobbler.com/2.0/', {});
});
이 bcuz와 같이 부를 수는 없습니다. userGetTopTracksRes는 $ resource.get()을 수신하며 함수가 아닙니다. –