Tag: backbone.js

使用RequireJS加载主干和下划线

我正在尝试使用RequireJS加载Backbone和Underscore(以及jQuery)。 使用Backbone和Underscore的最新版本,似乎有点棘手。 首先,Underscore将自己注册为一个模块,但Backbone假设Underscore在全球范围内可用。 我还应该注意到Backbone似乎并没有将自己注册为一个与其他库不一致的模块。 这是最好的main.js我可以拿出这个作品: require( { paths: { 'backbone': 'libs/backbone/backbone-require', 'templates': '../templates' } }, [ // jQuery registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/jquery/1.7/jquery.min.js', // Underscore registers itself as a module. 'http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.2.1/underscore-min.js' ], function() { // These nested require() calls are just due to how Backbone is built. Underscore basically says if require() // is […]

基于backbone.js的许多框架的现实优势和弱点是什么?

希望有人可以分享一些最新的backbone.js变种的经验。 在几个项目中,我对主干/下划线/需求有一些很好的经验,并且我希望为复杂的应用程序结构迈出更高级的解决scheme。 我知道以下框架可用: 木偶 Geppetto(基于木偶) 卓别林 , 卓别林 – chaplin-boilerplate 椎体 布局pipe理 胸部 灵气 卢卡 Singool 堆栈中 骨干网UI 废船 顺便说一句 – 大规模项目的优秀起点 可能我错过了一些。 关于这里的差异有一个简短的介绍: speakerdeck谈话链接 但这是非常普遍的。 我想知道是否有人可以使用这些框架分享他们的实际应用程序的经验。 select一个优于另一个的好处是什么? 例如,什么时候牵线木偶可以成为比chaplin更好的解决scheme,或者为什么vetebrae更适合某些应用。 当然,显而易见的答案将是“ 使用最适合您的需求的东西 ”,但是我缺乏这些框架的经验来了解他们的优势/目的/优势或首选scheme。 谢谢! 编辑1:find这个职位: Backbone.Marionette与Backbone-Boilerplate 编辑2: 通过邮件Mathias schafer(Chaplin)回答: 总之,目前的结构已经接近1.0版本,因为它已经在生产中使用了。 我们不打算在1.0之前添加大的新function或打破API更改。 木偶是当然最全面和最稳定的图书馆。 它使用Backbone解决了JS应用程序开发的几个方面。 例如,它有一个强大的视图层,骨干本身完全无效。 当然,你会发现有些方面不能满足你的要求,你可能会觉得有必要build立一个围绕木偶的结构。 相比之下,Chaplin专注于Backbone应用程序的一个相当小但非常重要的方面,即整体应用程序结构和模块生命周期。 在这方面,Chaplin是非常受欢迎的,更像是一个框架而不是一个库(就像“你的代码调用一个库,一个框架调用你的代码”一样)。 卓别林提供了一些中心类,它们位于各个应用程序模块之上,并控制整个应用程序状态。 这给你的应用程序一个传统的结构,比如Ruby on Rails。 在卓别林,你声明了一些映射到控制器的路线,卓别林一旦路线匹配就启动控制器。 它还处理旧控制器的处置,以及控制器应该创build的主视图的显示和隐藏。 这是基本的想法,但卓别林照顾丑陋的细节,使其顺利运行。 有两个主体与此结构相伴随: – […]

meteor,Ember.js和Backbone.js之间的主要区别是什么?

学习Ember.js / Backbone.js一直在我的待办事项列表中。 现在meteor出来了,我只是想知道有没有meteor,Ember.js和Backbone.js经验的人能够总结一下这三个JavaScript框架的主要区别和优缺点。 具体来说,我想知道每个框架更适合哪个任务,为什么其他的不是。 编辑:现在我读了更多关于meteor,它似乎更类似于Knockout.js而不是Backbone.js。 因此,与Knockout.js的任何比较也是受欢迎的。

单独REST JSON API服务器和客户端?

我即将创build一堆web应用程序。 (请参阅http://50pop.com/code的概述。)我希望他们能够从许多不同的客户端访问:前端网站,智能手机应用程序,后端Web服务等,所以我真的想要一个每个JSON REST API。 另外,我更喜欢在后端工作,所以我把自己的注意力全部集中在API上,并雇用其他人来制作前端UI,无论是网站,iPhone,Android还是其他应用程序。 请帮我决定我应该采取的方法: 在铁路上 制作一个非常标准的Railsnetworking应用程序。 在控制器中,执行respond_with开关,以提供JSON或HTML。 JSON响应是我的API。 临:很多先例。 伟大的标准和许多这样做的事例。 Con:不一定希望API与Web应用程序相同。 不喜欢,如果/然后respond_with切换方法。 混合两个非常不同的东西(UI + API)。 REST SERVER + JAVASCRIPT-HEAVY客户端 制作一个仅限JSON的REST API服务器。 使用Backbone或Ember.js作为客户端JavaScript直接访问API,在浏览器中显示模板。 Pro:我喜欢API和客户端的分离。 聪明的人说这是要走的路。 理论上很好。 似乎前沿和激动人心。 Con:先例不多。 这样做的例子并不多。 公共示例(twitter.com)感觉迟钝,甚至不采用这种方法。 REST SERVER + SERVER-SIDE HTML客户端 制作一个仅限JSON的REST API服务器。 制作一个基本的HTML网站客户端,只访问REST API。 较less的客户端JavaScript。 Pro:我喜欢API和客户端的分离。 但是,提供纯HTML5是相当简单的,而不是客户密集型的。 Con:先例不多。 这样做的例子并不多。 框架也不支持这个。 不知道如何处理它。 特别是从经验中寻找build议,而不仅仅是理论上的。

backbone.js的用途是什么?

我试图从它的网站http://documentcloud.github.com/backbone了解backbone.js的效用,但我仍然无法弄清楚。 任何人都可以通过解释它的工作原理来帮助我吗?如何在编写更好的JavaScript方面有所帮助?

骨干:在重新渲染中丢失的事件

我有超级查看谁负责渲染子视图 。 当我重新渲染 超级查看 子 视图中的所有事件都丢失了。 这是一个例子: var SubView = Backbone.View.extend({ events: { "click": "click" }, click: function(){ console.log( "click!" ); }, render: function(){ this.$el.html( "click me" ); return this; } }); var Composer = Backbone.View.extend({ initialize: function(){ this.subView = new SubView(); }, render: function(){ this.$el.html( this.subView.render().el ); } }); var composer = new Composer({el: […]

如何触发model.save()上的成功callback?

this.model.save({ success: function(model, response){ console.log('success'); }, error: function(){ console.log('error'); } }) 模型正确地发布到处理保存的服务器,但成功callback没有被触发。 我需要从服务器发回一些东西吗?

“如何”在Backbone.js保存整个集合 – Backbone.sync或jQuery.ajax?

我很清楚它可以完成,我已经看了不less地方(包括: 保存整个集合的最佳实践? )。 但是我仍然不清楚在代码中是怎么写的? (这个post用英文解释,有一个javascript特定的解释会很棒:) 说我有一个模型集合 – 模型本身可能有嵌套的集合。 我已经重写父集合的toJSON()方法,我得到一个有效的JSON对象。 我希望“保存”整个集合(相应的JSON),但是主干似乎并没有内置这个function。 var MyCollection = Backbone.Collection.extend({ model:MyModel, //something to save? save: function() { //what to write here? } }); 我知道你必须说的地方: Backbone.sync = function(method, model, options){ /* * What goes in here?? If at all anything needs to be done? * Where to declare this in the program? […]

如何在Backbone中获取单个模型?

我在Backbone有一个Clock模型: var Clock = Backbone.Model.extend({}); 我试图从/clocks/123获取最新信息的实例。 有些事我已经尝试了: 一个“类”级的方法 Clock.fetch(123) // TypeError: Object function (){ … } has no method 'fetch' 创build一个实例,然后调用它的fetch : c = new Clock({id: 123}) c.fetch() // Error: A 'url' property or function must be specified 一个集合 我试图创build一个AllClocks集合资源(即使我没有使用这样的事情在页面上): var AllClocks = Backbone.Collection.extend({ model: Clock, url: '/clocks/' }); var allClocks = new AllClocks(); allClocks.fetch(123); […]

Webpack ProvidePlugin vs外部?

我正在探索与Backbone.js一起使用Webpack的想法。 我已经按照快速入门指南,并有一个Webpack如何工作的一般想法,但我不清楚如何加载依赖库,如jQuery / backbone / underscore。 他们应该用<script>外部加载,还是Webpack可以像RequireJS的Shim那样处理? 根据webpack文档:shimming模块 , ProvidePlugin和externals似乎与此有关(在某些地方也是这样的bundle! loader),但我不知道何时使用哪个。 谢谢