Articles of backbone.js

在服务器和客户端上渲染Backbone.js应用程序

假设我有一个使用Backbone.js和Handlebars构build的Web应用程序。 作为服务器,我正在使用Node.js. 现在我想在两端进行渲染,即在服务器和客户端上。 当第一次请求路由时,服务器应该进行渲染(主要是由于性能原因)。 之后,以下所有操作都将导致客户端呈现。 这意味着我必须能够以完全相同的方式在客户端和服务器上呈现任何页面。 两端必须支持相同的路线。 我怎么能完成这个任务? 目前,我已经看到了AirBnb的rendr项目,但是这绝对会把我和Backbone.js联系起来(我不确定是否要一直坚持使用Backbone.js),而且似乎还没有完美的完成然而。 AirBnb至less不推荐用于生产用途。 任何其他想法如何做到这一点? 作为一个子问题,我也许会问:在服务器和客户端之间共享JavaScript代码的首选方式是什么? 为此,我也知道,但我可以想象,可能有更好的解决scheme。 任何提示?

在页面加载时骨干提取集合

我知道backbone文档说fetch不应该被用来在页面加载时填充集合 ,而且我会弄清楚为什么: var appCollection = Backbone.Collection.extend({ model:appModel, url:'api/app', initialize:function(){ this.fetch(); }, }); var homeView = Backbone.View.extend({ el:'#content', initialize:function(){ this.collection = new appCollection(appModel) this.render() }, render: function () { var that = this; alert(1); _.each(this.collection.models, function (item) { that.renderApp(item); }, this); }, renderApp: function (item) { var appview = new appView({ model: item }); this.$el.append(appview.render().el); } […]

jshint错误:重新定义'$'

我有一个Node.js Web应用程序,我使用Backbone.js和jQuery。 我的主要js文件是app.js ,其中包括所有必需的脚本,包括jQuery。 所以,这是我的app.js代码的开始: 'use strict'; var _ = require('lodash'); var $ = require('jquery'); var B = require('backbone'); B.$ = $; 现在,如果我在我的项目上运行grunt ,它会在jQuery加载到$的行上引发错误。 它显示了我: Linting public/js/app.js …ERROR [L4:C5] W079: Redefinition of '$'. var $ = require('jquery'); 我仍然可以使用grunt –force运行所有的东西,但是我想要消除这个错误。 有人可以解释为什么会引发错误,以及如何解决? 我的.jshintrc文件: { "laxcomma": true ,"laxbreak": true ,"curly": true ,"eqeqeq": true ,"immed": true ,"latedef": true ,"newcap": […]

node.js表示JS文件caching

我正在使用简单的快递服务Backbone项目。 这是我们使用的文件: app.configure('production', function () { var myTime = 432000; //5 days app.set('port', process.env.PORT || 80); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(allowCrossDomain); app.use(app.router); app.use(express.static(__dirname + './../', { maxAge: myTime } )); console.log("SERVING !!!"); }); 每个部署项目都使用require.js(r.js)进行优化。 文件被集中,缩小,并且被部署到生产服务器。 问题如下。 假设我将caching设置为15天。 而在第三天,我们部署了新的项目,这意味着新的版本。 客户端浏览器不会提取新的JavaScript文件,因为它已经有了兑现和有效。 如何欺骗浏览器使用新文件删除caching? 感谢:D

Backbone和Express路由器可以在Express应用中一起工作吗?

我已经构build了几个Backbone应用程序,并赞赏客户端代码结构和组织。 我正在使用Express来进入Node开发,我不确定Express和Backbone如何在处理路由时一起工作。

了解TodoMVC示例

开始学习node.js和backbone.js,并使用TodoMVC示例作为我的指南。 有几个部分我有困难缠绕我的头。 见下文。 这里是app.js. var express = require('express') , http = require('http') , mongoose = require('mongoose') , models = require('./models') , routes = require('./routes') , app = express(); app.configure(function () { app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(require('stylus').middleware({ src: __dirname + '/public' })); app.use(express.static(__dirname + '/public')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); }); app.configure('development', function […]

如何select正确的JavaScript框架以及如何开始?

我的第一篇文章,所以我很兴奋的每个答案。 我在select正确的JavaScript框架时遇到了一个很大的问题。 只是一些个人信息,我知道javaScript的基础知识,我可以写jQuery,当然我知道HTML5和CSS3。 但我想和其他许多人一样,跳到服务器端应用程序。 我在网上阅读了几个月来关于所有不同的框架,但它决定一个非常复杂。 前几天我开始尝试使用angularJs,但由于某种原因,我并没有真正理解它,因为我不太了解这些文档,而且就我search的内容而言,没有太多的video广播。 我可以用video学得更好。 然后我切换到meteor.js,但他们的文档更复杂,也没有太多的video。 在读meteor的时候,我转向了node.js,因为据说,如果我理解了node.js,它就更容易理解了。 但直到我明白node.js有很多时间丢失。 我知道我必须学习它,但我只想从一个客户端框架开始,然后与node.js轻松连接。 我现在的基本意图是,从一个真正的基本待办事项应用程序开始,只为自己学习它,也许以后添加更多的function。 有一天,我想继续尝试另一个应用程序,另一个等等。这是一个很长的路要走。 但是我不能为它select一个框架。 我想要的东西,这是相当开放的不同用例,它的一个小的或一个大的应用程序。 以防万一。 但是大多数时候,当我阅读一个框架的时候,他们也会说一些关于commonJS,underscore.js等的东西,这只是让我困惑,因为我一直认为我必须学习所有的东西。 那么最好的方法是什么? 我应该回到Angular并进一步尝试吗? 我是否应该尝试自己编写,在需要的时候查看文档,或者我应该先阅读完整的文档? meteor也一样。 而且我也总是在脑海里有骨干,如果它可能是更好的。 这个领域是如此巨大的开始,所以你的经验是什么? 你是怎么开始的,最好的办法是什么? 我不想放弃更多的时间,没有决定毫无意义的阅读。 非常感谢你的帮助。

Sails.js正则expression式路由

我正在构build一个简单的sails.js项目,并实现与骨干的前端。 理想情况下,我想要一个单一的路线到我的骨干应用程序服务的一个索引页面。 '/*': { view: 'home/index' } 这很好,所以现在任何URL都会进入主页。 除了现在,到任何资产(.js,.css,.html,.jpg)的所有路线都不能工作了。 我可以在config.routes.js看到这个注释: // NOTE: // You'll still want to allow requests through to the static assets, // so we need to set up this route to ignore URLs that have a trailing ".": // (eg your javascript, CSS, and image files) 'get /*(^.*)': 'UserController.profile' 但对我来说没有任何意义。 如何忽略带有文件扩展名的路由 我也用'api', […]

model.save()的Backbone.js / express.js参数

我在客户端上使用了Backbone.js,在后端上使用了node.js,我在做一个“有限的”模型保存时遇到了一些麻烦,如下所示: http : //backbonejs.org/#Model-保存 正如在例子中,如果我这样做 book.save({author: "Teddy"}); 如何使用express.js访问保存的参数,即我只想保存到“作者”字段的事实? 我试过以下 req.body -> gives ALL parameters of the model being saved, I want only the 'author' field req.query -> empty 任何帮助非常感谢!

handlebars.js Uncaught TypeError:Object#<Object> has no method'call'

任何人都帮助handlebars.js的问题? 我使用在Centos 6.4上运行的句柄来预编译模板。 要安装这个我安装: npm:yum -y –enablerepo = epel install npm 首先inheritance以避免问题:npm install -ginheritance 然后把手本身:npm install -g handlebars 这给出了以下版本: handlebars@2.0.0-alpha.1 / usr / lib / node_modules / handlebars optimist@0.3.7(wordwrap@0.0.2) uglify-js@2.3.6(async@0.2.10,source-map@0.1.31) 我正在使用requirejs来加载下面的应用程序: jQuery v1.11.0 Underscore.js 1.6.0 车把v1.3.0(含amd) backbone.js 1.1.0 有没有人有一套版本号一起工作? 谢谢!