Tag: backbone.js

为什么knockout.js有一个更好的小项目,backbone.js的声誉大?

我已经使用了几个月的knockout.js,并且觉得每天使用它都很愉快。 不必pipe理dom状态或应用自己的自定义绑定所带来的收益是不可思议的,我不介意没有开箱即用的模型function。 但是,每次我阅读一下knockout.js和其他框架的概念,大家一致认为它是好的,它会减less代码和复杂性,但是它更适合于较小的项目。 这个陈述总是作为一个事实给予的,没有太多的解释,所以我对这个共识似乎是什么感到困惑。 (公平地说,我还没有使用骨干,所以不真正知道他们如何比较) 我用了两个相当大的项目,每个都有十几个模型和十几个视图模型,还没有看到问题。 在一个大型的项目中,我唯一能看到vs Backbone的缺点是,你将会得到一些不可忽视的性能,因为有knockout应用和pipe理所有的绑定。 但是,这是主要关心还是有什么我失踪?

在Backbone中访问父类

我需要从inheritance的MyModel类中调用父类的initialize方法,而不是像我今天所做的那样完全覆盖它。 我怎么能这样做? 以下是我的代码现在看起来: BaseModel = Backbone.Model.extend({ initialize: function(attributes, options) { // Do parent stuff stuff } }); MyModel = BaseModel.extend({ initialize: function() { // Invoke BaseModel.initialize(); // Continue doing specific stuff for this child-class. }, });

在Backbone.js集合上调用fetch()时会触发什么事件?

在我的backbone.js应用程序中,有一个Trips collection ,它包含了与LocalStorage一起工作的Trip models 。 我可以调用Trips.create(form_attributes)创build并保存到Todos store的旅程。 当我第一次加载我的应用程序时,我打电话给Trips.fetch({ success: trips_fetch_success }) ,并且trips_fetch_success接收一个响应,显示Trips collection保存的Trip models 。 我试图将refresh和change事件绑定到Trips collection ,但是这些事件没有被捕获,使我相信我对Trips.fetch触发哪些事件有错误的想法。 我的问题: Trips.fetch触发哪些事件? 并且是在收集或每个单独的Trip models上触发的事件?

将backbone.js视图附加到现有元素与将el插入到DOM中

我正在实现我的第一个实际的非教程Backbone应用程序,并且有关使用backbone.js的一个方面的2-ish问题,这个方面与我不一致,这涉及到将视图的呈现的el注入DOM vs.使用el的现有元素。 我怀疑我会在这里为您提供几个“可教授的时刻”,并感谢您的帮助。 在Web中看到的大多数Backbone View示例在创build视图时指定tagName,id和/或className,从而创build一个从DOM中未附加的el。 他们通常看起来像这样: App.MyView = Backbone.View.extend({ tagName: 'li', initialize: function () { … }, render: function () { $(this.el).html(<render an html template>); return this; } }); 但是这些教程并不总是解释他们如何推荐将渲染的el放入DOM中。 我已经看到了几种不同的方式。 所以,我的第一个问题是:哪里是调用视图的渲染方法,并将其插入到DOM的适当位置? (不一定是同一个地方)。 我已经看到它在路由器,在视图的初始化或渲染function,或只是在根级文档就绪function完成。 ( $(function () )。我可以想象任何这些工作,但有一个正确的方法来做到这一点? 其次,我从一些HTML标记/线框开始,将html部分转换为与骨干视图相对应的js模板。 而不是让视图渲染一个独立的元素,并在html中提供一个锚点来坚持它,我觉得它更自然,当只有一个元素的观点,它不会消失,使用现有的,清空的包装元素(通常是div或span )作为el本身。 这样,我不必担心在文档中find插入未连接的el的地方,这可能最终会看起来像这样(注意额外的分层): <div id="insert_the_el_in_here"> <!– this is all that's in the original HTML doc –> […]

backbone.js构build嵌套的视图和模型

使用backbone.js: 我有一个顶级ModelA,它包含2个属性和2个嵌套模型ModelB和ModelC。 ModelB和ModelC各有两个属性如下: ModelA attributeA1 attributeA2 ModelB attributeB1 attributeB2 ModelC attributeC1 attributeC2 ModelA有ViewA,ModelB有ViewB。 ViewA的渲染函数将一个新的div放到body上,而ViewB的渲染函数创build一个h1。 ViewA的初始化函数调用ViewB的render来将h1插入到新的div中。 这种分离背后的基本原理是h1可能会改变,并且需要独立于ViewA进行重新渲染。 ViewA initialise: //call ViewA's own render function this.render() //call ViewB's render function that further modifies the $("#new") div created earlier. $("#new").append(ViewB.render().el) //ViewA's own render function render: //place <div id="new"></div> onto 'body' ViewB render: //create a <h1></h1> funcB1: //can this […]

超级骨干

当我重写Backbone.Model的clone()方法时,有没有办法从我的植入调用这个重写方法? 像这样的东西: var MyModel = Backbone.Model.extend({ clone: function(){ super.clone();//calling the original clone method } })

了解Backbone.js REST调用

我想了解Backbone.js同步方法,并正在通过http://backbonejs.org/#Sync上的文档 它说 The default sync handler maps CRUD to REST like so: create → POST /collection read → GET /collection[/id] update → PUT /collection/id delete → DELETE /collection/id 现在,我一直在前端开发和Backbone的新,我觉得上面很难理解…我从来没有使用REST或任何其他服务器端协议… 你能不能简单地解释一下(比如我们使用Backbone.sync时REST如何映射)任何非常简单的例子都是非常有用的。

人偶布局和地区有什么区别?

Marionette提供了两个名为Regions和Layouts的组件。 乍一看,他们似乎提供了类似的function:在我的应用程序页面上的位置放置子视图,再加上一些额外的事件绑定仙尘。 outlook未来 ,很明显,每个组件都以一种完全不同的方式实现,但是我不确定为什么以及何时使用这个组件。 每个组件的用途是什么?

需要从Underscore.js中解释_.bindAll()函数

我一直在学习一些backbone.js,而且我已经看到很多使用_.bindAll()的实例。 我已经阅读了整个backbone.js和underscore.js文档页面,试图了解它的function,但是我仍然对它的function非常模糊。 这是下划线的解释: _.bindAll(object, [*methodNames]) 在methodNames指定的对象上绑定多个方法,只要调用它们就可以在该对象的上下文中运行。 非常方便的绑定函数将被用作事件处理程序,否则将被调用一个相当无用的。 如果没有提供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… 如果你可以通过另外一个例子或者口头的解释来帮助你,那么任何事情都将不胜感激。 我试图寻找更多的教程或例子,但没有出现,我所需要的服务。 大多数人似乎只是知道它是什么自动执行的…

Backbone.js和jQuery

据说Backbone处理所有更高级别的抽象,而jQuery或类似的库与DOM协同工作,规范事件等等。 有人能帮助我用一个简单的实例来理解这个陈述吗? 另外像Backbone,Knockout这样的MVC框架的一个重要特性是它保持模型(数据)和视图同步。 但是这似乎是在页面级而不是在整个应用程序中。 所以我们可以有模型/数据和视图在多个页面同步..(种类的全球)