草庐IT

backbone.signalr

全部标签

javascript - 为什么backbone全程使用_.extend()方法?

我对创建MVCjavascript框架感到好奇,这既是一种乐趣,也是一种学习体验。在backbone.js内部https://github.com/jashkenas/backbone/blob/master/backbone.js作者使用underscore的_.extend()方法来“扩展”主干对象。从Model开始,我试图找出这样做的好处。//AttachallinheritablemethodstotheModelprototype._.extend(Model.prototype,Events,{});这是如何运作的?Model在此之前已经定义,然后作者想要将源对象中的所有属

javascript - 在使用调试器单步执行 JS 时,有没有办法跳过 jQuery/Backbone/Underscore 代码?

当使用Chrome调试器单步调试我的JS应用程序中的代码时,我经常发现自己费力地浏览了我不感兴趣的主干/下划线/jQuery代码。有没有办法单步执行我的代码,但让调试器跳过这些库中的代码? 最佳答案 我刚刚花了三天时间在chrome的调试器中做这件事。诀窍是在Backbone/jQuery/Underscore代码和F8之后的下一行设置断点。喜欢for(_(obj).each(function(v,k,l){console.log(k,v,l);});在for行和console行上设置断点。F11到for行,然后F8然后继续你的步进

javascript - Backbone 路由器不触发路由

我有以下路由器:appRouter=Backbone.Router.extend({routes:{'':'inbox','inbox':'inbox','discussions_engagement':'contacts',},inbox:function(page){console.log('inbox');varpage=page||1;engage.app.hydrateInbox(page,engage.app.showInbox);},....};当我在http://[...]/#inbox上打电话时appRouter.navigate('inbox',{trigger:t

javascript - Backbone 收款柜台

我有一个集合女巫可以在后端对一个集合进行分页,所以在滚动时我会添加另一批项目。我知道服务器上的项目数。我正在寻找一种方法来使用getCounter方法扩展我的所有集合。这个想法是最初设置服务器计数器,当用户从集合中添加或删除项目时,计数器更新。最好的方法是什么?我认为问题在于,当我从服务器获取新项目时,add事件也会被触发。否则我可以绑定(bind)到add和remove事件。 最佳答案 您需要控制哪些添加和删除应该计算在内,哪些不计算在内。我想到了两个选项。使用silent:true选项使所有不应计入的操作静音,并将您的计数器连接

javascript - Backbone.js 模型删除失败

所以现在当我销毁模型并且服务器返回错误时,销毁事件无论如何都会被触发并且模型数据会被重置..有什么办法可以防止这种情况发生吗? 最佳答案 您可以将{wait:true}作为选项传递给destroy(),这会导致它在从模型中删除模型之前等待来自服务器的响应收藏。在将View绑定(bind)到事件方面,您应该分别处理remove和destroy事件,因为remove事件将被触发当服务器成功返回时,但如果服务器返回错误则永远不会。或者,您可以将error处理程序传递给model.destroy,如果服务器因任何原因发生故障,您可以使用它来

javascript - Backbone 和 Express 路由器可以在 Express 应用程序中协同工作吗?

我已经构建了几个Backbone应用程序,并且欣赏客户端代码结构和组织。我正在使用Express进行Node开发,但我不确定Express和Backbone如何在处理路由时协同工作。 最佳答案 您需要了解Node和Backbone是相互独立的。Node用于服务器端(例如使用数据库、api服务等)。Backbone是一个客户端JavascriptMVC框架,它为您提供了一个用于组织客户端Javascript应用程序的结构。(浏览器中的应用程序)您可以在客户端拥有一个Backbone应用程序,它可以连接到任何后端,无论是Node、Rai

javascript - Backbone 示例应用程序和 javascript 适用

您好,有人可以解释为什么在remaining()函数中的Backbone示例应用程序(http://backbonejs.org/examples/todos/index.html)中,使用apply(this.without.apply(this,this.done());)而不是this.without(this.done())//Filterdownthelistofalltodoitemsthatarefinished.done:function(){returnthis.where({done:true});},//Filterdownthelisttoonlytodoite

javascript - 二维菜单 Backbone 路由器 : advice

我是backbone.js的初学者。我的页面导航如下所示:左侧导航定义了四种View类型,而顶部导航应该更新数据模型并重新呈现当前View(这就是我的想法)。我想允许用户根据他/她的个人喜好为当前View和类别添加书签(并且可能将设置存储在浏览器的本地存储中)。这两个菜单可以互换使用,这意味着用户可以决定显示与当前类别模型不同的View,并且用户可以在当前View中选择不同的类别。我在弄清楚如何以稳定的方式为此配置我的路由器时遇到了一些麻烦。请注意,此路径后面可能还有其他参数,例如根据profile_id在map上显示事件标记。现在,我有了这样的想法:varAppRouter=Back

javascript - Backbone.js `model.destroy()` 自定义转换?

当我使用Backbone的model.destroy()时,它似乎会自动从DOM中删除该View。有没有办法让我使用destroy()发送DELETE请求,但自己从DOM中删除View?类似于:this.model.destroy({wait:true,success:function(){$('#myElement').animate({"height":"0",1000,function(){$('#myElement').remove()}});}}); 最佳答案 您需要在包含项目View(documentation)的任何C

javascript - backbone.js - View 中的 Controller 属性

我有一个名为authenticated的Controller属性,默认为false。但是,在我的登录View中,我需要能够将其设置为true。此外,在我的注销View中,我需要能够将其设置为false。如何在View中公开此属性?varController=Backbone.Controller.extend({...authenticated:false,login:function(){if(this.authenticated){location.hash='!/dashboard';}else{newLoginView();}},logout:function(){$.post