我正在尝试使用Flickr API创建一个非常基本的Flickr库.我想要实现的是按照标签对照片进行排序.我正在使用的是jQuery.getJSON(),以便我可以解析flickr.photosets.getPhotos的API响应.
我有兴趣从Flickr获取的数据是标签和与每张照片相关联的URL.这个问题的唯一逻辑方法就是创建一个以下格式的多维数组:
Array['tag1'] => ['URL_1', 'URL_2', 'URL_3', 'URL_n'];
Run Code Online (Sandbox Code Playgroud)
但是,我找不到任何方法来实现这一目标.我的代码看起来像这样:
$.getJSON('http://api.flickr.com/services/rest/?api_key=xxx&method=flickr.photosets.getPhotos&user_id=xxx&format=json&extras=tags%2C+url_l%2C+url_sq&nojsoncallback=1&photoset_id=xxx',
function(data) {
var imageArray = [];
$.each(data.photoset.photo, function(i, item) {
imageArray[item.tags] = [item.url_sq,];
});
});
Run Code Online (Sandbox Code Playgroud)
我知道代码可能看起来很尴尬,但我已经尝试了所有的东西,我无法解决这个问题.
我目前遇到以下问题(这里是一些示例代码):
<div id="container"></div>
<script type="text/javascript">
$('#container').load('content.html');
$('.elementInContentHTML').fadeIn();
</script>
Run Code Online (Sandbox Code Playgroud)
简而言之,我希望能够访问已动态添加到页面的元素,而无需将它们附加到事件处理程序.
我知道的live()方法,但我不希望我的行动绑定到任何活动,即我只是想不点击它们,注重运行这些新元素的一些行动,模糊等.
我目前正在尝试对嵌套路由进行验收测试,该路由使用相同的组件两次,但使用不同的参数.这在我正常运行时工作正常,但是当我运行验收测试时,我注意到组件的参数没有被更新,这导致我的测试失败.以下是一些示例代码:
在index.hbs我有:
{{index-view model=model type='location'}}
Run Code Online (Sandbox Code Playgroud)
我的index-view组件看起来像这样:
<h1>{{title}} List</h1>
{{listing-table model=model type=type}}
Run Code Online (Sandbox Code Playgroud)
通过点击的一个元素listing-table,然后我去的locations.show路线,其中包含link-to的locations.show.devices路线.该locations.show.devices路线包含:
{{listing-table model=model.devices type='device' exclude='locationName'}}
Run Code Online (Sandbox Code Playgroud)
然而,在我的验收测试,我可以看到(呼应出器件的javascript这些属性),虽然model和type正在更新,exclude始终设置为当组件最初叫什么设置.
现在,我已经检查(通过console.log())组件是否被重复使用或没有,我可以看到,无论是init ()和didDestroyElement ()被调用两次,这意味着该组件经历的整个生命周期的两倍.但是,我真的不明白为什么我的exclude论点根本没有更新,为什么这只会在验收测试时发生?
这是我正在做的精简版(当然它适用于Twiddle,但不适用于现实生活!).