underscore.js在_之外没有数据.each
underscore.js no data outside _.each
我正在用jQuery的$.ajax检索一个JSONp文件。我不知道如何使下划线循环工作。。。
在成功中,我有这个代码:
success : function(response) {
var dataResp = '';
_.each(response.results, function(response, index) {
var dataResp = response;
var prodName = dataResp.trackName;
var prodUri = dataResp.trackViewUrl;
var prodUri = dataResp.trackViewUrl;
var prodUri = dataResp.trackViewUrl;
var prodPrice = Math.round(dataResp.trackPrice);
var prodImg = dataResp.artworkUrl100.replace("100x100bb.", "700x700bb.");
console.log(prodName); // returns all product names, and that's fine
}, this);
console.log(dataResp); // dataResp is empty
var html = "";
var compiled = _.template($("#product-structure").html(), dataResp );
_.each(dataResp, function(data) { // loop to compile template for all the elements inside the jsonp response
html += compiled(data);
});
$('#data').html(html); // append to html the compiled template
}
我使用underscore.js作为模板部分,但我不明白为什么我的数据在_之外不可用。每个循环。。。
这里是我的模板:
<script type="text/template" id="product-structure">
<%= data.img %>
<%= data.title %>
<%= data.price %>
<%= data.uri %>
</script>
您可以使用_.map函数返回一个新数组。我假设您想要一个返回这些值的对象。
此代码将返回一个对象数组,每个对象将包含prodName、prodUri、prodPrice和prodImg。
var dataResp = _.map(response.results, function(response, index) {
return {
prodName: response.trackName,
prodUri: response.trackViewUrl,
prodPrice: Math.round( response.trackPrice ),
prodImg: response.artworkUrl100.replace( "100x100bb.", "700x700bb")
};
}, this);
您已经使用了两次var
关键字。在循环内部:
CCD_ 2创建一个名为dataResp的新变量。由于变量在js中具有函数作用域,因此此变量仅存在于创建它的函数中。解决方案是在没有var
的情况下将其切换到dataResp = response;
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- underscore.js在_之外没有数据.each
- 单击时从 AJAX .each() 循环追加数据
- 在 Javascript 中等待来自 JQuery $.each 中的异步嵌套函数的数据
- 流星 #each 和会话数据
- jQuery each函数:未按预期正确获取数据
- Meteor/Iron路由器-在{{#each}}循环中获取父数据
- jQuery.each没有按应返回每项数据
- 在处理嵌套JSON数据时避免嵌套each循环
- JQuery - .each方法将Json数据推送到数组
- 流星-不填充{{each}},即使控制台说数据在那里
- 如何使用jQuery each()获取JSON数据中的第二级数组值
- 无法使用JQuery $.each()函数从JSON数据构建列表
- d3.js:将数据绑定到现有svg.selector.each做什么
- jQuery .each显示数组数据-不能算出来
- 如何在不使用{{#each}}或{{#if}}的情况下从Handlebars.js中的.json文件中获取数据
- 如何将数据存储在 javascript for each “loop” 中,以便可以在“循环”之外访问它
- 将每个.post数据插入到
使用each - 使用$.each()获取数据属性