我有一些项目,每个项目都有一些标签,我正在尝试为每个标签做一个Instagram请求,并显示与所有标签相关的图片。
它似乎有效,但我只能看到第二个标签的图片(如果该项目有多个标签)。
我很确定问题就在于:
target.empty();
没有放在正确的地方,但我试图改变它的位置,我没有照片,所有物品的所有照片等...
https://jsfiddle.net/re7vkbwq/37/
每次显示项目信息时都会执行instagram请求,所有项目共享相同的模式,以使用角度和ng重复显示其信息。
我用正确的json请求更新了小提琴,在此之前它是错误的广告我写了一个数组。
我尝试将target.empty()调用到最开始,但它最后返回一个空目标。它应该工作,我不明白为什么不这样工作:
instagramTags = function(tags){
target.empty();
tags.forEach(function(tag) {
grabImages(tag.name, 3, access_parameters);
});
};
我试图把它放在forEach之后,即使它似乎没有意义,它会返回其中一个标签的一些图像:
instagramTags = function(tags){
tags.forEach(function(tag) {
grabImages(tag.name, 3, access_parameters);
});
target.empty();
};
答案 0 :(得分:1)
如果你在控制台中查看net,在你的小提琴中,你会看到Instagram API请求中没有定义标签。这似乎有效:
以下代码已更新,以反映更正的问题和OP的评论。
var access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_parameters = {
access_token: access_token
};
instagramTags = function(tags){
$('.pictures').empty();
tags.forEach(function(tag) {
grabImages(tag.name, 3, access_parameters);
});
};
function grabImages(tag, count, access_parameters) {
var instagramUrl = 'https://api.instagram.com/v1/tags/' + tag + '/media/recent?callback=?&count=' + count;
$.getJSON(instagramUrl, access_parameters, onDataLoaded);
}
function onDataLoaded(instagram_data) {
var target = $(".pictures");
//console.log(instagram_data);
if (instagram_data.meta.code == 200) {
var photos = instagram_data.data;
//console.log(photos);
if (photos.length > 0) {
//target.empty();
for (var key in photos) {
var photo = photos[key];
target.append('<a href="' + photo.link + '"><img class="thumbnail" src="' + photo.images.thumbnail.url + '"></a>')
}
} else {
target.html("nothing found");
}
} else {
var error = instagram_data.meta.error_message;
target.html(error);
}
}
instagramTags([
{
name: "ruby"
},
{
name: "cry"
},
{
name: "fun"
}
]);