Tag: underscore.js

我怎样才能推迟每个循环的jQuery

我在每个循环的jQuery中进行“重”canvas操作,导致较慢的设备(IE和iPad)有时变得完全没有响应。 所以我想我可以使用下划线的_.defer()来排列每个循环中的函数,如: function handleAsset = _.defer(function(){ //weightlifting goes here (partly async) }); $.each(assets, handleAsset); 然而,这会抛出一个奇怪的错误(堆栈跟踪指向$.each ): Uncaught TypeError: Object 20877 has no method ‘call’ 这种方法有缺陷吗? 这是由于处理程序函数内部的异步操作吗? 还有另一种/更好的方法来实现这一目标吗?

将返回的JSON对象属性转换为(较低的第一个)camelCase

我从这样的API返回JSON: Contacts: [{ GivenName: “Matt”, FamilyName:”Berry” }] 为了保持这与我的代码样式(camelCase – 小写首字母)一致,我想转换数组以产生以下内容: contacts: [{ givenName: “Matt”, familyName:”Berry” }] 什么是最简单/最好的方法? 创建一个新的Contact对象并迭代返回的数组中的所有联系人? var jsonContacts = json[“Contacts”], contacts= []; _.each(jsonContacts , function(item){ var contact = new Contact( item.GivenName, item.FamilyName ); contacts.push(contact); }); 或者我可以映射原始或以某种方式转换它?

backbone.js – 获取额外数据和请求

我有一个容纳一些用户的集合。 需要的一些信息是总数,页数等等。如何将这些信息传递回客户端? 或者他们必须来自一个单独的视图,在这种情况下,我将需要多个ajax调用? 我想收集fetch()并收到一些“元数据”。 处理这个问题的好方法是什么?

将JavaScript对象数组排序为特定顺序(使用现有函数)

给定一组对象: {key:“a”,值:42},{key:“d”,值:28},{key:“c”,值:92},{key:“b”,值:87} 和一组键: [“c”, “a”, “b”, “d”] 是否有ECMAScript函数或第三方JavaScript库,允许您在一行/函数调用中排序第一个对象数组,以匹配第二个数组中指定的键的顺序,结果是: { 关键:“c”, 价值:92 }, { 关键:“a”, 价值:42 }, { 关键:“b”, 价值:87 }, { 关键:“d”, 价值:28 } 提供function或算法的其他问题: Javascript – 基于另一个数组排序数组 – Stack Overflow javascript – 如何根据另一个数组的顺序对对象数组进行排序? – 堆栈溢出 相似/相关问题: 按特定顺序对PHP中的对象数组进行排序 php – 排序对象数组

在javascript的迭代之间应用延迟for循环

是否可以使用jQuery或下划线对javascript for循环的连续迭代应用延迟? 我在我的页面上有一个for循环用于在用户满足某些条件时弹出咆哮通知,如果有多个条件,我想错开咆哮通知而不是同时弹出几个。 这是有问题的循环: var badge_arr = response.split(“Earned badge:”); //Start at 1 so I’m not getting everything before the first badge for(i = 1; i < badge_arr.length; i++){ responseStr += badge_arr[i]; //Create growl notification //badge info echoed back will be of the form //Earned badge: name: description: imgSource var badge_info = badge_arr[i].split(':'); var title = […]

Lodash .clone和.cloneDeep行为

我尝试用嵌套对象克隆一个对象数组。 就像是: var data = [ { id: 1, values: { a: ‘a’, b: ‘b’ } }, { id: 2, values: { c: ‘c’, d: ‘d’ } } ]; _。克隆 使用_.clone方法和isDeep参数为true : var clone = _.clone(data, true); data[1].values.d = ‘x’; console.log( _.isEqual(data, clone) ); // true, clone[1].values.d == ‘x’ 我期待clone[1].values.d == ‘d’ : 如果isDeep为true,则也将克隆嵌套对象,否则将通过引用分配它们。 怎么了? […]

主干集合提取不会触发重置()

这是我对集合的看法 var mssg = mssg || {}; mssg.MessagesView = Backbone.View.extend({ el: ‘#messages’, initialize: function() { this.collection.fetch(); this.collection.bind(‘reset’, this.render, this); }, render : function() { this.$el.html(”); this.collection.each(function( item ) { this.renderMessage( item ); }, this ); return this; }, renderMessage : function( item ) { var messageView = new mssg.MessageView({ model : item }); this.$el.append( messageView.render().el […]

基于属性将对象数组分成单独的数组

假设我有一个这样的数组: var arr = [ {type:”orange”, title:”First”}, {type:”orange”, title:”Second”}, {type:”banana”, title:”Third”}, {type:”banana”, title:”Fourth”} ]; 我希望将它拆分为具有相同类型的对象的数组: [{type:”orange”, title:”First”}, {type:”orange”, title:”Second”}] [{type:”banana”, title:”Third”}, {type:”banana”, title:”Fourth”}] 但我想一般这样做,所以没有if语句指定橙色或香蕉 // not like this for (prop in arr){ if (arr[prop] === “banana”){ //add to new array } } 思考? JQuery和Underscore都是可以使用的选项。

如何在骨干中的动态生成按钮上绑定事件?

如何在backbone.js中的动态生成按钮上绑定click事件? window.PackageView = Backbone.View.extend({ tagName: “div”, className: “package-template”, events:{ ‘click #display-nodes’ : ‘main’, // This button is declared in my HTML code and calls main method successfully. ‘click .display’ : ‘disp’, // This is dynamic button generated with class as display }, getAction: function(nodeId){ // Get Actions from NodeId and generate buttons $(‘.nodes’).append(“” + action.Name […]