Tag: backbone.js

node.js / backbone.js应用程序加载configuration文件设置

我有一个node / backbone / sails项目,需要加载部署特定的configuration文件。 所以在应用程序的sails部分,我可以在myapp / config / mysettings.js中放置一个configuration文件 并引用它sails.config.mysettings.foo 。 这按预期工作。 但在应用程序的骨干部分,我不能为我的生活弄清楚如何引用相同的文件(…剪切为简洁)。 define([ 'jquery', 'async', …, **'/config/mysettings.js'** ], function ($, async, …, **mysettings**) { relevantAjaxFunction: function() { … **fail**: console.log(mysettings.foo); 在控制台中生成未定义的消息。 引用像这样的应用程序范围设置文件的正确方法是什么? 我看了,也找不到任何东西,这让我觉得这不是显而易见的,就是我错了。

使用Browserify进行多种构buildconfiguration的复杂骨干应用程序

我正在开发一个大的Backbone应用程序,这个应用程序由于是多租户devise,可以很好的configuration,可以在很多平台上运行。 目前这些应用程序是通过Grunt构build的,环境variables用于确定在应用程序的最终版本中包含哪些Backbone文件。 目前包含的一些文件正在扩展或覆盖之前包含的其他文件。 举个例子: BaseHeader.js: var BaseHeader = Backbone.View.extend({ // code }); Header.js: var Header = BaseHeader.extend({ // code }); 目前,我的成品应用程序是用Grunt构build的,它使用一堆脚本标记创build一个.html文件,所有的文件都将被浏览器加载。 我想使用Browserify捆绑我的JS到一个单一的文件,所以现在我有: BaseHeader.js: var Backbone = require("backbone"); var BaseHeader = Backbone.View.extend({ // code }); module.exports = BaseHeader; Header.js: var Backbone = require("backbone"); var BaseHeader = require("/path/to/BaseHeader.js"); var Header = BaseHeader.extend({ // code }); module.exports = […]

Backbone + r.js:Backbone没有定义

我试图用Grunt和grunt-contrib-requirejs插件优化Backbone项目。 项目具有以下结构: – root/ |- public/ | |- components/ | |- js/ | | |- login/ | | | |- [dirs and files] | | | |- main.js | |- libs/ |- gruntfile.js 在components和libs目录中,我已经使用Bower安装了库。 gruntfile.js有requirejs的以下选项: requirejs: { compile: { options: { name: "main", baseUrl: "public/js/login/", mainConfigFile: "public/js/login/main.js", out: "public/js/app.build.js", findNestedDependencies: true, } } }, 在bower.json我有以下依赖关系: […]

Backbone.js – 在ajax中获取视图,模型或集合属性'beforeSend'

我在我的节点应用程序中使用Backbone.js。 我从视图,模型和colllection调用各种ajax调用。 我已经在每个视图,模型和集合中创build了自定义属性,例如“myName”,并为每个视图分配了唯一的名称。 现在我想要在ajax“beforeSend”这个“myName”属性,所以我应该知道从哪个视图或模型,这个ajax被调用。 有没有这样做的select?

通过Express持久更新Backbone模型

我正在尝试更新在客户端的一个集合中的模型和mongo db集合中的一个文档中的数据。 该事件触发的方法,这是点击一个视图上的元素。 客户端是一个骨干的应用程序。 在服务器端,我使用带有Waterline ORM的Express和Mongodb节点。 对于这个请求我使用: app.put('/posts/:id', function(req, res){ app.models.posts.update( req.params.id, function(err, result){ if(err) return res.status(500).json({ err: err }); res.json( result ); }); }); 事件方法在视图中是: updatePost: function(e){ e.preventDefault(); //update the new content of the fields on the server. //find model to update in the collection by colleciton.findWhere. this.modelid = $(e.currentTarget).attr('id'); this.modeltoupdate = this.collection.findWhere( { […]

在Backbone和RequireJS中使用listenTo

所以在使用RequireJS之前,我有下面的代码工作正常,并从服务器,而不是一个.fetch()调用拉从post…鉴于RequireJS的模块化模式,我不能有这个事实漂亮的app.postsvariables浮动其他文件,是否还有一种方法仍然使用$(document).ready函数,并有postsvariables仍然响应'重置'事件? 目前,我只是得到这个与.fetch(见下文)。 routes.js router.get('/fund', function(req, res) { Post.find({}, function(err, docs) { res.render('fund', { posts: docs //passed to bootstrapPosts in script element }); }); }); index.jade var bootstrapPosts = !{JSON.stringify(posts)}; collections.js app.posts = new app.PostCollection(); //app. == namespacing app.js $(document).on('ready', function() { app.post_appView = new app.postAppView(); app.posts.reset(bootstrapPosts); app.posts.fetch(); //**Don't want to use this**// }); post_appView.js initialize: […]

创build我自己的模型与节点谁允许新的模型和Model.find()

我试图创build一个模型与节点,我想能够像这样使用它: 要求模型 var Example = require('./models/example'); 创build新的对象 该模型可以使用new创build一个新的对象 var example = new Example({ data:'example' }); 找 该模型可以find对象的使用方法 Example.find({ data: 'mongoQuery' }, function(err, examples) {}); 保存 该模型可以帮助find对象的使用方法,用方法返回对象。 Example.findOne({ query: 'example' }, function(err, example) { example.set({ data: 'another data' }); example.save(); }); 使用示例 我希望能够使用这样的模型创build,查找(一个或多个),增加和删除一个标记(例如)。 我将在控制器或lib上使用它。 var Token = require('./models/token); // Create and save a new token var […]

Node.js – 未定义:0语法错误:意外的input结束

用Node.js和Backbone.js来弄湿我的脚。 我正在使用“Backbone Blueprints”这本书,他提供的一些代码来设置networking服务器似乎不起作用。 我有Node.js安装和运行(我知道这个工程)。 他的package.json代码似乎有诀窍,但我会在下面发布它以防万一: { "name": "simple-blog", "description": "This is a simple blog.", "version": "0.1.0", "scripts": { "start": "nodemon server.js" }, "dependencies": { "express": "3.xx", "ejs": "~0.8.4", "bourne": "0.3" }, "devDependencies": { "nodemon": "latest" } } 这是我试图打开服务器时出错的server.js代码: var express = require('express'); var path = require('path'); var Bourne = require("bourne"); var app = express(); var […]

骨干model.save()不使用body parser设置express服务器的响应主体

我正在尝试使用model.save()保存(后)一个Backbone模型。 模型: Backbone.Model.extend({ urlRoot: '/project/', defaults: { projectname: "default projectname" } }); 保存模型(在我的Backbone.router对象中): putTest: function(id) { var projectItem = new ProjectModel({projectname: "This shiny new project"}); projectItem.save(); }, 我希望服务器上使用中间件“body-parser”的服务器上的节点/快速路由器可以在express request.body对象上获取模型的属性,如下所示: post: function(request, response) { console.log(request.body.projectname); } 但是response.body对象是空的。 当我使用method =“post”的常规html表单时,就像这样: <form id = "createProject" action = "/project/" method = "post" > <input type="text" name="projectName" value="Project name" /> […]

Backbone.save()的ERR_CONNECTION_RESET通过Mongoose更新模型

请告诉我我在做什么错误:我的骨干视图通过mongoose在MongoDB中创build和保存文件,并在视图中使用数据保存()和抓取()方法。 但是当我使用Backbone model.save({option:'modified'}); 与后端的route.put(),jQuery的火灾ERR_CONNECTION_RESET。 我尝试了很多我在网上find的东西,但是没有成功。 也许我需要使用ajax.Prefilter或这种types的东西,但我不知道该怎么做。 骨干视图触发更新中的代码段是: this.user.save({ options: 'modified' }, { wait: true, success: function(model, response) { console.log('saved'); }, error: function(model, error) { console.log(error); } }); 在路由器index.js中 router.put('/user/:id', require('./user').put); 它工作,因为在GET路线,它工作得很好。 在user.js中 exports.put = function(req, res) { var query = { _id: req.params.id }; User.update(query, { options: req.body.options }, function(){ res.send('ok'); }); }; 我也用id或_id做了很多实验,还有各种使用mongoose更新的方法,比如 User.findOne({ […]