Tag: underscore.js

在对象数组上使用下划线的“差异”方法

_.difference([], []) 这个方法工作正常,当我有像原始types的数据 var a = [1,2,3,4]; var b = [2,5,6]; 和_.difference(a,b)调用返回[1,3,4] 但万一我使用的对象 var a = [{'id':1, 'value':10}, {'id':2, 'value':20}]; var b = [{'id':1, 'value':10}, {'id':4, 'value':40}]; 似乎没有工作

Underscore中的外部模板

我使用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 ) }) 但它没有工作。

使用Underscore for Javascript删除重复的对象

我有这样的数组: var foo = [ { "a" : "1" }, { "b" : "2" }, { "a" : "1" } ]; 我想过滤它有: var bar = [ { "a" : "1" }, { "b" : "2" }]; 我尝试使用_.uniq,但我猜是因为{ "a" : "1" }不等于自己,它不起作用。 有没有办法提供一个重写等于函数的下划线uniq?

深入查找嵌套对象中的键

假设我有一个对象: [ { 'title': "some title" 'channel_id':'123we' 'options': [ { 'channel_id':'abc' 'image':'http://asdasd.com/all-inclusive-block-img.jpg' 'title':'All-Inclusive' 'options':[ { 'channel_id':'dsa2' 'title':'Some Recommends' 'options':[ { 'image':'http://www.asdasd.com' 'title':'Sandals' 'id':'1' 'content':{ … 我想find一个对象,其中id是1.是否有这样的function? 我可以使用_.filter的_.filter方法,但是我必须从顶部开始并过滤掉。

将表单数据序列化为JSON

我想在Backbone.js模型中做一个表单的预服务器validation。 要做到这一点,我需要从一个表单的用户input到可用的数据。 我发现了三种方法来做到这一点: var input = $("#inputId").val(); var input = $("form.login").serialize(); var input = $("form.login").serializeArray(); 不幸的是,没有一个提供我需要的良好的可扩展和可开发的JSON对象。 我已经浏览了Stack Overflow的几个问题,但是我发现只有一些额外的库。 不是Underscore.js ,当前的jQuery或Backbone.js提供了一个辅助方法吗? 我无法想象有没有要求这样的function。 HTML <form class="login"> <label for="_user_name">username:</label> <input type="text" id="_user_name" name="user[name]" value="dev.pus" /> <label for="_user_pass">password:</label> <input type="password" id="_user_pass" name="user[pass]" value="1234" /> <button type="submit">login</button> </form> JavaScript的 var formData = $("form.login").serializeObject(); console.log(formData); 输出 { "name": "dev.pus", "pass": "1234" […]

如何使用underscore.js作为模板引擎?

我试图了解JavaScript的新用法作为服务器端语言和function语言。 几天前我听说过node.js和expression框架。 然后我看到关于underscore.js作为一组实用函数。 我在stackoverflow上看到了这个问题 。 它说我们可以使用underscore.js作为模板引擎。 任何人都知道关于如何使用underscore.js进行模板的很好的教程,特别是对于那些对高级javascript没有经验的biginners。 谢谢

<script type =“text / template”> … </ script>的解释

我偶然发现了一些我从未见过的东西。 在Backbone.js的例子TODO应用程序( Backbone TODO Example )的源代码中,他们把它们的模板放在一个<script type = "text/template"></script> ,其中包含的代码看上去像PHP以外的东西,但是带有JavaScript标签。 谁可以给我解释一下这个? 这是合法吗?

lodash和下划线之间的区别

为什么有人更喜欢lodash.js或underscore.js实用工具库呢? Lodash似乎是下划线的替代品,后者已经延长了。 我觉得这两者都很出色,但是我不太了解他们如何努力进行有教育的比较,我想了解更多的差异。

下划线模板引发variables未定义错误

我看了一些关于骨干js主题的video。 这是直接来自video的例子。 从2012年开始,所以我认为骨干规则/图书馆已经发生了变化,但是我不明白为什么现在不行。 在video中,这个人显示它运行在JS小提琴,但我不能得到它的工作。 (我已经在JS Fiddle中包含了必要的库,例如下划线,主干和jQuery) var V = Backbone.View.extend({ el:'body', render: function () { var data = { lat: -27, lon: 153 }; this.$el.html(_.template('<%= lat %> <%= lon%>', data)); return this; } }); var v = new V(); v.render(); <script src="../../../underscore-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://backbonejs.org/backbone-min.js"></script>