这里有一些奇怪的代码......
var x = 5;
function fn() {
x = 10;
return;
function x() {}
}
fn();
alert(x);
Run Code Online (Sandbox Code Playgroud)
这是jsFiddle
被function x() {}称为在所有之后return?为什么不提醒10?
为什么remove下划线中没有超级简单的功能?
var arr = [1,2,3,4,5];
_.remove(arr, 5);
Run Code Online (Sandbox Code Playgroud)
当然我可以使用reject或without......但它们都不具有破坏性.我错过了什么吗?
我想我会以老式的方式做到这一点......
arr.splice(arr.indexOf(5), 1);
Run Code Online (Sandbox Code Playgroud)
啊
输入标签的名称是否允许简单地为整数?
<input type="text" name="34" />
Run Code Online (Sandbox Code Playgroud)
只是问我是否是一个懒惰的程序员。或者,如果我有大量任意字段,并且它们的名称并不重要。
如果我想为一个集合做一个自动完成,那么最好的方法是什么?我想看一下搜索字符串是否在我的模型中的任何(或少数几个)属性中.
我在想像......
this.collection.filter(function(model) {
return model.values().contains($('input.search]').val());
})
Run Code Online (Sandbox Code Playgroud)
编辑对不起,我一定不能解释得那么好.如果我有一个带属性的集合......
[
{ first: 'John', last: 'Doe'},
{ first: 'Mary', last: 'Jane'}
]
Run Code Online (Sandbox Code Playgroud)
我想输入a我的搜索,捕获keyup事件,并过滤掉{ first: 'Mary', last: 'Jane'},因为John和Doe都不包含a.
假设我在我的应用程序中的某个地方缓存了一个静态用户列表App.Users.我可能需要在我的应用程序中的几十个地方列出我的用户.按照惯例,我只需要将我的上下文列表传递给模板.
var tmpl = Handlebars.templates['TemplateName'];
var html = tmpl({
model: model,
users: App.Users
});
Run Code Online (Sandbox Code Playgroud)
但是这种方法需要在模板和javascript中进行一些连接.我想做的是单独在模板中指定这个,所以我不需要在我的脚本中记住这一点.考虑这样的事情......
{{#each {{users}}}}
<li> ... </li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
... users帮助函数在哪里才能返回我的App.Users.那不是很好吗?
所以完全不编译.什么是另一种解决方案
我想让我的 Bootstrap 选项卡与我的页眉(如下所示的模拟)齐平,但是页眉比其他选项卡高会导致所有内容中断。我怎样才能做到这一点?

<ul class="nav nav-tabs" role="tablist">
<li><h1>Header</h1></li>
<li class="active"><a href="#">Tab 1</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 3</a></li>
<li class="pull-right"><button id="new-thing" class="btn btn-primary">New</button></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是我想要的字体大小和边距。现在我只需要标签与底部边框齐平。 http://jsfiddle.net/bK4a4/4/
在Can.js中似乎有几种不同的方法可以做同样的事情,这太棒了!但是有些方法与其他方法的工作方式略有不同,并且会影响DOM的呈现和更新方式.如果有人能清除细微差别,我会很感激.
我认为这个选择变得有趣的场景是你想要一个默认文本或一个空列表的占位符.
这些都不一样.空数组和can.List都将呈现{{#if list}}.
所以用我们学到的东西#if......
{{#if list.length}}
<ul>
{{#each list}}
<li>...<li>
{{/each}}
</ul>
{{else}}
<i>The list is empty.</i>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
我认为这是两全其美的.今天我只想到,因为这是一个块助手,所以它支持{{else}}.
{{#list}}
rendered for each item in list
{{else}}
rendered once if list is empty
{{/list}}
Run Code Online (Sandbox Code Playgroud)
问题是,这不能产生我们用过的html #each.
<ul>标签中,无论列表是否为空,它都会被呈现<ul>标签贴在第一个块中(正块?肯定?)并且每次都会渲染所以实现似乎取决于标记.很公平.
据说,#each并#list以不同方式更新DOM.来自#each... 的文档
如果键的值是can.List,则在列表更改时更新生成的HTML.当列表中的更改发生时,仅发生最小量的DOM元素更改.
因此,向列表中添加一个项目,仅渲染该项目,删除项目,仅删除该元素.#list没有记录行为,但我认为它可能会重新渲染整个块.
哪个最好?除了更简洁之外,我不确定是否#list有任何优势,那么作者为什么建议它更受欢迎呢?
所以我想在我的超酷can.js应用程序中制作一些路线.瞄准这样的事情......
#!claims ClaimsController - lists claims
#!claims/:id ClaimController - views a single claim
#!claims/new ClaimController - creates a new claim
#!claims/:id/pdf - do nothing, the ClaimController will handle it
#!admin AdminController - loads my Administrative panel with menu
#!admin/users - do nothing, the AdminController will handle it
#!admin/settings - do nothing, the AdminController will handle it
Run Code Online (Sandbox Code Playgroud)
那我们怎么做呢?
“claims route”: function() { load('ClaimsController'); },
“claims/:id route”: function() { load('ClaimController'); },
“admin”: function() { load(‘AdminController’); },
Run Code Online (Sandbox Code Playgroud)
凉豆,我们走了.那么如果有人发送链接给某人,比如...
http://myapp#!claims/1/pdf
Run Code Online (Sandbox Code Playgroud)
什么都没发生!好吧,让我们添加路线.
“claims/:id/pdf route”: function() …Run Code Online (Sandbox Code Playgroud)