我最欣赏Backbone.js的一件事就是简单而优雅的inheritance是如何工作的。 我开始熟悉React,并且不能真正find类似于这个Backbone代码的反应 var Vehicle = Backbone.View.extend({ methodA: function() { // … } methodB: function() { // … } methodC: function() { // … } }); var Airplane = Vehicle.extend({ methodC: function() { // Overwrite methodC from super } }); 在反应中,我们有mixin ,如果我们这样做的话,使用那些我们可能会接近上面的例子 var vehicleMethods = { methodA: function() { // … } methodB: function() { // […]
我目前正在构build一个基于backbone.js的大型web应用程序,并且在组织,“僵尸”等方面遇到了很多问题,所以我决定做一个重要的代码重构。 我已经写了一堆处理“僵尸”的辅助函数。 不过,我想从头开始,并创build一个很好的结构/组织的代码。 我还没有find关于大规模backbone.js组织的很多很好的教程/例子,所以我从头开始,想看看我能否从我开始的地方得到一些意见。 我明显在全局命名空间中设置我的代码; 但我也想保持这个名字空间相当干净。 我的主app.js保持类文件本身与全局名称空间分开; 你可以通过使用reg()函数注册一个类(这样它可以被实例化),而inst()函数实例化类数组中的一个类。 因此,除了3个方法之外,MyApp命名空间只有Router,Model和View: var MyApp = (function () { var classes = { Routers: {}, Collections: {}, Models: {}, Views: {} }; methods = { init: function () { MyApp.Router = MyApp.inst('Routers', 'App'); MyApp.Model = MyApp.inst('Models', 'App'); MyApp.View = MyApp.inst('Views', 'App'); Backbone.history.start(); }, reg: function (type, name, C) { […]
我有一个REST Json API返回一个列表“日志”。 有许多types的日志实现不同但相似的行为。 数据库层的服务器端实现是一种单表inheritance,所以日志的每个JSON表示都包含它的“types”: [ {"type": "ULM", "name": "My uml logbook", … , specific_uml_logbook_attr: …}, {"type": "Plane", "name": "My plane logbook", … , specific_plane_logbook_attr: …} ] 我想在客户端复制这个服务器模型,所以我有一个基本的Logbook类和多个日志子类: class Logbook extends Backbone.Model class UmlLogbook extends Logbook class PlaneLogbook extends Logbook … 我的Backbone.Collection是一组用于查询JSON API的Logbook模型: class LogbookCollection extends Backbone.Collection model: Logbook url: "/api/logbooks" 当我获取日志集合,是否有办法将每个Logbook转换为其相应的子类(基于JSON“type”属性)?
骨干模型的初始化和构造函数有什么区别? 当我扩展主干模型(ParentModel)时,我使用initialize方法来设置任何默认属性。 但是每当我创build一个基于ParentModel的模型,我使用构造函数来运行任何初始function。 我这样做,因为它的工作原理,但有人在工作中问我为什么使用初始化和构造函数,除了它的工作,我没有一个好的答案。 我可以花时间阅读源代码来弄清楚,但在这里询问并得到正确答案似乎更容易。 var ParentModel = Backbone.Model.extend({ initialize : function() { // code here }, }); var Model = ParentModel.extend({ constructor : function (options) { Backbone.Model.prototype.constructor.call(this, options); // code here },
我有一个backbone.js应用程序( www.github.com/juggy/job-board ),我想直接将我的表单input绑定到我的模型(一个Sproutcore)。 Backbone.js(或其他工具)可能不实际跟踪input上的每个模糊事件并手动更新模型吗? 这看起来像很多胶水代码。 谢谢, 朱利安
哪种模式/视图实例不需要时最有效的方式? 通常,我将所有的逻辑放在控制器/路由器中。 这是决定的,应该build立什么样的观点,以及应该为他们提供什么样的模式。 通常,有几个处理函数,对应于不同的用户操作或路由,每当处理程序执行时我都会创build新的视图实例。 当然,这应该消除以前存储在视图实例中的任何内容。 但是,在某些情况下,某些视图本身保留了DOM事件处理程序,并且没有正确解除绑定,导致这些实例保持活动状态。 我希望如果有一个正确的方式来销毁视图实例,例如当他们的el(DOM表示)分离,或抛出的DOM
var Gallery = Backbone.Controller.extend({ _index: null, _photos: null, _album :null, _subalbums:null, _subphotos:null, _data:null, _photosview:null, _currentsub:null, routes: { "": "index", "subalbum/:id": "subindex", "subalbum/:id/" : "directphoto", "subalbum/:id/:num" : "hashphoto" }, initialize: function(options) { var ws = this; if (this._index === null){ $.ajax({ url: 'data/album1.json', dataType: 'json', data: {}, success: function(data) { ws._data = data; ws._photos = new […]
我不是这些积木的专家,但乍一看,在我看来: ASPNET MVC想要在服务器端生成视图并pipe理应用程序的模型。 它将浏览器视为一个有点笨的展示引擎,服务器为其提供的视图的消费者。 backbone.js想要在浏览器中生成视图和pipe理模型。 它将服务器端视为一个相当愚蠢的基于REST的持久性引擎。 这似乎是一个简单的观点。 我相信这不是整个故事。 整合这两件事情的真正机会是什么? 这样做有意义吗? 或者他们之间有太多的重叠,这是有道理的? 我喜欢看到这个分析或讨论,如果任何人都可以引用我。
我可以在我的REST API上做一些帮助。 我正在写一个Node.js应用程序,它使用Express,MongoDB,并在客户端有Backbone.js。 我花了最后两天的时间,试图解决所有这些问题,没有太多的运气。 我已经检查过 保护REST API 使用OAuth保护我的REST API,同时仍允许通过第三方OAuth提供者进行身份validation(使用DotNetOpenAuth) http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ http://tesoriere.com/2011/10/10/node.js-getting-oauth-up-and-working-using-express.js-and-railway.js/ 我想保持我的后端和前端尽可能分开,所以我想使用精心devise的REST API会很好。 我的想法是,如果我总是开发一个iPhone应用程序(或类似的东西),它可以使用API来访问数据。 但是,我希望这是安全的。 用户已经login到我的networking应用程序,我想确保我的API是安全的。 我读了关于OAuth,OAuth 2.0,OpenID,Hmac,哈希等…我想避免使用外部login(Facebook / Twitter /等)我想注册和login在我的应用程序/服务器。 …但我仍然在这里困惑。 也许是在深夜,或者我的大脑只是被炸,但我真的可以采取一些措施,在这里做什么。 我有什么步骤来创build一个安全的API? 任何帮助,任何信息,任何示例,步骤或任何东西都会很棒。 请帮忙!
我一直在研究一些JavaScript框架,例如Backbone.js和Batman.js,虽然我真的很喜欢它们,但是我还有一个让我不断回头的小事情。 这个问题是可访问性。 作为一名Web开发人员,我一直试图使我的网站和应用程序的可访问性,特别是使用逐步增强的想法。 显然,这些新的JS框架并没有被优雅地降级,所以我想知道在这个问题上有什么其他开发者的想法,以及你在做什么。 毕竟一个网站/应用程序的可访问性不是一个可选的东西,因为它是许多国家的法律的一部分。 也许我只是在这个问题上过分热心,而不是赞赏在可达性方面有多远。