我正在页面上显示来自JSON源的音乐会的动态列表。这些也是从这个源添加到我的数据库中,但由于各种原因,这个页面上没有显示我的数据库。
我想在通过JSON显示的音乐会列表中为每个数据库音乐会添加一个显示页面的链接。
这获得了我的JSON音乐会:
function fetch(){
if($scope.search == "" || $scope.search == null){
$.getJSON("http://api.bandsintown.com/events/search.json?&api_version=2.0&app_id=FYP&location=Dublin,Ireland", function(result)
{
$scope.$apply(function()
{
$scope.details = result;
changeDate();
}, 0);
});
}
JSON的音乐会是接下来的50场演出,所以我已经获得了显示页面的链接到我的数据库的最后50个音乐会参赛作品,这些参赛作品将匹配JSON,如下所示:
def index()
{
int eventCount = Event.count()
int startingPoint = eventCount - 50
def events = Event.createCriteria().list
{
order('id')
firstResult(startingPoint)
maxResults(50)
}
respond events
}
尝试将JSON和show链接结合起来导致两个循环冲突,并在页面上显示50 x 50列表结果 - 每个JSON条目都有一个指向每个节目的链接,反之亦然。
<ul class="rel-results">
<g:each in="${eventInstanceList}" status="i" var="eventInstance">
<li ng-repeat="show in details">
<!-- SHOW LINKS -->
<g:link action="show" controller = "Event" id="${eventInstance.id}">Info</g:link>
<div class = "event-date-time">{{ show.datetime }}</div>
<div class = "event-item">
<div class = "nameAndTicket row" style="margin-left: 0;margin-right: 0">
<span class="artist-name col-md-10">
<a href="#/" id="{{ $index + 1 }}" ng-click="update(show)" class = "artist-item">
{{ show.artists[0].name }}
</a>
</span>
</div>
<div class="venueAndRSVP row" style="margin-left: 0;margin-right: 0">
<span class="venue-name col-md-10">
<a href="#/" id="{{ $index + 1 }}" ng-click="update(show)" class = "venue-item">
<div style = "text-transform: lowercase;display: inline-block;color: red;font-size: 80%;">at</div> {{ show.venue.name }} {{ show.formatted_location }}
</a>
</span>
</div>
</div>
</li>
</g:each>
</ul>
我尝试过Angular独特过滤器甚至hacky JS来删除页面上的重复链接,但我认为这些是错误的想法。我觉得我需要以某种方式将g:each和ng-repeat结合起来 - 实际上这样做是行不通的。
非常感谢任何帮助!
编辑以添加事件域
class Event implements Rateable, Commentable {
int bandsintown_id
String artist
String venue
String ticket_url
String ticketStatus
String eventTime
String livestream
static constraints =
{
bandsintown_id unique:true
livestream nullable:true
}
答案 0 :(得分:0)
来自json的id存储在你的Event域中,这是用来将2链接在一起的最佳/最独特的东西,这对我有用...
EventController
def showByBandId() {
def event = Event.findByBandsintown_id( params.id )
// add some error handling here in case event isn't found
redirect ( action: 'show', id: event.id )
}
homepage.gsp
<div id="related_results">
<g:render template="partials/shows" />
</div>
shows.gsp
...
<li ng-repeat="show in details">
<a ng-href="${createLink( controller: 'event', action: 'showByBandId' )}/{{show.id}}">Info</a>
....