我有一个表单需要输入的用户字符串才能提交。 提交时,使用输入值作为参数,通过服务创建范围值。 此范围值用于填充我的其余视图。
一切都很棒,除了我需要为这个范围值的每个项目返回一些函数。 我试图在视图上调用它,但是我得到一个无限循环。
不知道怎么在这里继续。你能帮我吗?
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/', {});
});
答案 0 :(得分:0)
在模板中,您想要调用该函数。因此,在访问其返回值的成员之前,您需要先调用该函数。例如:<input type="text" name="category[]" id="category" value="3" onclick ="box_val('3','3')">
。
答案 1 :(得分:0)
为什么不直接返回您想要显示的值而不是返回所有内容?
$scope.trackGetInfoReq = (artist, track) => {
let data = lastFmService.get({
api_key: $rootScope.api_key,
method: 'track.getInfo',
artist: artist,
track: track,
format: 'json'
});
return data.track.playcount;
};