给定两个数组,一个带键,一个带值:
keys = ['foo', 'bar', 'qux']
values = ['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)
如何通过仅使用underscore.js方法将它转换为对象?
{
foo: '1',
bar: '2',
qux: '3'
}
Run Code Online (Sandbox Code Playgroud)
我不是在寻找一个简单的javascript答案(像这样).
我问这是个人运动.我认为下划线有一种方法正是这样做,只是发现它没有,这让我想知道它是否可以完成.我有一个答案,但它涉及很多操作.你会怎么做?
有人可以解释为什么在JavaScript中,
alert({} == true)
显示错误
if ({}) alert('true')
显示真的?
改变结果的if条件有什么不同?
我想写一些简写参数验证器obj || (obj = {});
,我对这个发现感到困惑.
我正在研究一个Backbone.View
应该将集合呈现为可滚动列表的集合.
作为初始渲染的一部分,我需要访问一些布局属性(例如clientWidth
),这些属性仅在渲染视图后才可用.
我的问题是,我如何知道何时将视图添加到DOM?
使用a Backbone.View
通常有两种方法将视图附加到DOM:
创建视图>渲染>附加它:
view = new MyList().render()
$('#dummy').append(view.$el)
Run Code Online (Sandbox Code Playgroud)创建视图并就地呈现它:
new MyList({el: '#dummy'}).render()
Run Code Online (Sandbox Code Playgroud)注意:我知道(1)和(2)不是完全等价的,这不是重点.
让我们考虑我的列表定义如下:
class MyList extends Backbone.View
render: ->
@$el->html( ... )
@
layout: ->
max = $el.scrollWidth - $el.clientWidth
# ... disable / enable scrolling arrows based on max ...
Run Code Online (Sandbox Code Playgroud)
在MyList附加到DOM之后,您如何确保调用layout()?