我有从API返回这个示例数据。 我正在使用Lodash的_.groupBy将数据转换成我可以更好地使用的对象。 返回的原始数据是这样的: [ { "name": "jim", "color": "blue", "age": "22" }, { "name": "Sam", "color": "blue", "age": "33" }, { "name": "eddie", "color": "green", "age": "77" } ] 我想_.groupBy函数返回一个如下所示的对象: [ { color: "blue", users: [ { "name": "jim", "color": "blue", "age": "22" }, { "name": "Sam", "color": "blue", "age": "33" } ] }, { […]
我正在开发一个既有Angular又有Underscore作为依赖的项目。 当我需要创build一个对象的副本,根据我的心情,我可能会使用angular.copy()或_.clone() 这发生在我身上,其中一种方法可能比另一种方法更加快速/可靠/强大。 是否有任何已知的问题,使这两个函数的使用比其他更好或更差,假设这两个库已经包括在内?
我一直在研究Backbone.js几个星期,我觉得在模型,路由器和集合中使用视图是很舒服的。 我还有一些很大的差距: id , cid和idAttribute之间的连接是什么? 他们如何互相影响? 一个新的模型到底是什么时候得到它的ID? 服务器负责分配吗? 我是否需要将其添加到模型的defaults (可能作为一个函数)? 也许addNewModel函数应该这样做?
首先,应该为应用程序提供的静态页面是login页面吗? 其次,我的服务器端代码是好的(它不会给任何用户不应该能够看到的数据)。 但是,如何让我的应用程序知道,如果用户没有login,返回到login表单?
我正在使用Javascript sort (与Underscore.js): _.sortBy(["Bob", "Mary", "Alice"], function (name) {return name}) > ["Alice", "Bob", "Mary"] 我希望数组以其他方式返回。 我怎么做? [“玛丽”,“鲍勃”,“爱丽丝”] 我不想在sorting之后将其反转 – 我希望在第一次时就以相反的方式创build它。 谢谢。
是否有可能以某种方式从下划线模板采取DOM元素,并将其用作另一个模板? 这个想法是,我的应用程序需要呈现一个包含项目和摘要循环的文档。 我需要偶尔重新渲染一个概要或几个项目,所以我不能只重新渲染整个文档。 不过,我希望应用程序用户能够简单地为文档创build自己的模板,我认为将所有内容保存在一个文档中可以使文档更容易。 我试图使用这样的东西: <script type="text/template" id="document-template"> <div id="document"> <h1><%= name %></h1> <ul class="items"> <% _.each(items, function(item) { %> <li><%= item %></li> <% }); %> </ul> <div id="summary"> <p>Total items: <%= totalitems %></p> </div> </div> </script> 现在,我可以很容易地做这个var documentTemplate = _.template($('#document-template').html()); 把它变成一个文档模板,但我想把摘要部分变成模板和列表项目。 我可以做这样的事情吗? var summaryTemplate = _.template($('#document-template #summary').html()); var itemTemplate = _.template($('#document-template .items li').html()); PS。 […]
我有一个定义的模型和集合: var Box = Backbone.Model.extend({ defaults: { x: 0, y: 0, w: 1, h: 1, color: "black" } }); var Boxes = Backbone.Collection.extend({ model: Box }); 当这个集合被模型填充时,我需要一个由Box模型组成的新的Boxes集合,它具有包含在完整集合中的特定颜色属性,我这样做: var sorted = boxes.groupBy(function(box) { return box.get("color"); }); var red_boxes = _.first(_.values(_.pick(sorted, "red"))); var red_collection = new Boxes; red_boxes.each(function(box){ red_collection.add(box); }); console.log(red_collection); 这工作,但我觉得有点复杂和不足。 有没有办法以更简单的方式做同样的事情? 这里是我描述的代码: http : //jsfiddle.net/HB88W/1/
我一直在研究的项目使用_.debounce()。 Underscore JS的反弹文档如下: _.debounce(function, wait, [immediate]) 创build并返回传递的函数的新的去抖动版本,该函数将延迟执行,直到自上次调用以来经过了等待毫秒。 这显然假定任何人想知道什么是反弹的手段,已经知道什么是反弹手段。 什么是反弹实际上呢?
当我同步时,是否有办法从我的模型中排除某些属性? 例如,我在我的模型信息中保留了一些视图状态。 比方说,我有一个select器模块,这个模块只是在我的模型上切换selected属性。 后来,当我在我的集合上调用.save()时,我想忽略selected的值,并将其从同步到服务器中排除。 有没有一个干净的方式呢? ( 让我知道你是否想要更多的细节 )
我需要将一个js对象转换为另一个对象,以传递到服务器上的键名称不同例如 var a = { name : "Foo", amount: 55, reported : false, … <snip/> … date : "10/01/2001" } 需要变成 a = { id : "Foo", total : 55, updated: false, … <snip/> … issued : "10/01/2001" } 我在那里查找obj可用于映射所有的键 var serverKeyMap = { name : "id", amount : "total", reported : "updated", … date […]