Questions tagged «underscore.js»

Underscore是JavaScript的实用程序带库,它提供了Prototype.js(或Ruby)中期望的许多功能编程支持,但没有扩展任何内置的JavaScript对象。这是与jQuery的晚礼服搭配使用的纽带。

12
下划线中的外部模板
我使用Underscore模板。是否可以将外部文件作为模板? 在骨干视图中,我有: textTemplate: _.template( $('#practice-text-template').html() ), initialize: function(){ this.words = new WordList; this.index = 0; this.render(); }, 在我的html中是: <script id="practice-text-template" type="text/template"> <h3>something code</h3> </script> 它运作良好。但是我需要外部模板。我尝试: <script id="practice-text-template" type="text/template" src="templates/tmp.js"> 要么 textTemplate: _.template( $('#practice-text-template').load('templates/tmp.js') ), 要么 $('#practice-text-template').load('templates/tmp.js', function(data){ this.textTemplate = _.template( data ) }) 但它没有用。

11
下划线:基于多个属性的sortBy()
我正在尝试使用基于多个属性的对象对数组进行排序。即,如果两个对象之间的第一个属性相同,则应使用第二个属性共同映射两个对象。例如,考虑以下数组: var patients = [ [{name: 'John', roomNumber: 1, bedNumber: 1}], [{name: 'Lisa', roomNumber: 1, bedNumber: 2}], [{name: 'Chris', roomNumber: 2, bedNumber: 1}], [{name: 'Omar', roomNumber: 3, bedNumber: 1}] ]; 按roomNumber属性排序这些我将使用以下代码: var sortedArray = _.sortBy(patients, function(patient) { return patient[0].roomNumber; }); 这可以正常工作,但是我该如何进行操作才能正确地对“ John”和“ Lisa”进行排序?

6
将属性添加到对象数组
我有一个对象数组,如下所示 Object {Results:Array[2]} Results:Array[2] [0-1] 0:Object id=1 name: "Rick" 1:Object id=2 name:'david' 我想向该对象数组的每个元素添加一个名为Active的属性。 最终结果应该如下。 Object {Results:Array[2]} Results:Array[2] [0-1] 0:Object id=1 name: "Rick" Active: "false" 1:Object id=2 name:'david' Active: "false" 有人可以让我知道如何实现这一目标。

4
隐藏/显示带有布尔值的元素
我的代码中往往有很多 if(shouldElementBeVisible) $element.show() else $element.hide() 有没有更优雅的方式与javascript,jquery或下划线打包在一起?理想情况下,我想要看起来像这样的东西 $element.showOrHideDependingOn(shouldElementBeVisible)

9
使用lodash .groupBy。如何为分组输出添加自己的密钥?
我有从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": …

3
骨架.js-事件,知道点击了什么
在我的骨干.js视图类之一中,我有类似以下内容: ... events: { 'click ul#perpage span' : 'perpage' }, perpage: function() { // Access the text of the span that was clicked here // Something like: alert($(element).text()) }, ... 因为我的每页标记可能类似于: <ul id="perpage"> <li><span>5</span></li> <li><span>10</span></li> </ul> 那么,如何准确找到有关导致事件的元素的信息?还是在这种情况下被点击?

4
Underscore.js和jQuery是否互补?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我刚开始学习JavaScript,偶然发现Underscore.js和jQuery。Underscore看起来真的很酷,但是我想知道jQuery是否尚未提供类似于Underscore的功能。那么,两者都值得使用吗?




3
需要来自Underscore.js的_.bindAll()函数的解释
我一直在学习一些ribs.js,并且已经看到很多使用实例_.bindAll()。我已经通读了整张骨架.js和underscore.js文档页面,以试图了解它的功能,但是对于它的功能我仍然很模糊。这是下划线的说明: _.bindAll(object, [*methodNames]) 在方法名称上指定的对象上绑定许多方法,以便在调用它们时在该对象的上下文中运行。对于将用作事件处理程序的绑定函数非常方便,否则将使用相当无用的this来调用它们。如果未提供methodNames,则该对象的所有函数属性都将绑定到它。 var buttonView = { label : 'underscore', onClick : function(){ alert('clicked: ' + this.label); }, onHover : function(){ console.log('hovering: ' + this.label); } }; _.bindAll(buttonView); jQuery('#underscore_button').bind('click', buttonView.onClick); => When the button is clicked, this.label will have the correct value... 如果您可以在此举另一个例子或一些口头解释来帮助您,那么您将不胜感激。我尝试搜索更多的教程或示例,但没有找到可以满足我需要的内容。大多数人似乎只知道它会自动执行...


5
使用Lodash将JavaScript数组拆分为多个块
我需要将一个JavaScript数组拆分成多个n大小的块。 例如:鉴于此数组 ["a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13"] 和n等于4,输出应该是这样的: [ ["a1", "a2", "a3", "a4"], ["a5", "a6", "a7", "a8"], ["a9", "a10", "a11", "a12"], ["a13"] ] 我知道有解决此问题的纯JavaScript解决方案,但是由于我已经在使用Lodash,所以我想知道Lodash是否可以为此提供更好的解决方案。 编辑: 我创建了一个jsPerf测试来检查下划线解决方案的速度。

4
如何使用下划线克隆对象数组?
#!/usr/bin/env node var _ = require('underscore'); var a = [{f: 1}, {f:5}, {f:10}]; var b = _.clone(a); b[1].f = 55; console.log(JSON.stringify(a)); 结果是: [{"f":1},{"f":55},{"f":10}] 克隆似乎无效!因此,我进行RTFM,然后看到以下内容: http://underscorejs.org/#clone 创建对象的浅表副本。任何嵌套的对象或数组都将通过引用复制,而不是重复。 所以_.clone是非常没用的。有没有一种方法可以实际复制对象数组?

3
如何在每个循环中“继续”:下划线,node.js
node.js中的代码非常简单。 _.each(users, function(u, index) { if (u.superUser === false) { //return false would break //continue? } //Some code }); 我的问题是,如果将superUser设置为false,如何在不执行“某些代码”的情况下继续下一个索引? PS:我知道其他条件也可以解决问题。仍然想知道答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.