Tag: backbone.js

Backbone 1.1.0视图 – 阅读选项

Backbone.js 1.1.0的更新日志指出: 骨干视图不再自动附加选项传递给构造函数this.options,但你可以自己动手,如果你喜欢。 我的问题是我现在怎么办? 以前,我有这个this.var = this.options.var定期在我的意见。

Backbone.js路由可选参数

在Backbone.js路由中可能有可选参数吗? 例如: routes: "search/[:query]": "searchIndex" 代替: routes: "search/": "searchIndex" "search/:query": "searchIndex"

Backbone.js处理属性的数组

我真的很喜欢Backbone,但是我最难做的事情似乎是简单的事情。 我感谢任何帮助下面的例子。 我有一个模型,标准,我想用来存储一些项目在我的用户界面的状态。 有几个简单的属性,一个属性是用于存储用户在UI中select的标签ID的ID数组。 所以,我创build了一个新的实例。 我添加一些项目到标签数组。 然后,我要开始新鲜的,创build一个新的实例,分配给相同的variables。 但是,我的标签数组继续保存我添加到其中的信息,作为Criteria的第一个实例的一部分。 我已经logging了下面的testing案例。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test</title> <script src="Scripts/Libraries/jquery-1.6.1.js" type="text/javascript"></script> <script src="Scripts/Libraries/underscore.js" type="text/javascript"></script> <script src="Scripts/Libraries/backbone.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> $(function () { // Simple model to hold some state about my UI. var Criteria = Backbone.Model.extend({ defaults: { "status": "Normal", "priority": […]

Backbone.jserror handling – 你怎么做?

我想知道人们通常如何使用backbone.js进行error handling。 每次我调用model.save(这又调用Backbone.sync)时popup一些东西会很好。 问题是,backbone.js如何知道服务器上发生了错误或成功? 我知道它会知道是否有500服务器错误或类似的东西(jquery知道,因为Backbone.sync调用jQuery.ajax) – 但我想能够传递消息和其他代码,所以我可以给更有意义的错误消息给用户。 我有一个想法,并会喜欢一些反馈。 这个想法是重写Backbone.sync。 新的同步从服务器获得响应,该服务器必须采用特定的格式。 这种格式会是这样的: ServerResponseObject: > ResponseCode > Message > Model 没有什么奇特的,但基本上,而不是只是返回普通的模型,它是包装了一个ResponseCode和Message ,可以显示给用户。 这是正常的做法吗? 任何其他更好的方法? 谢谢!

Backbone.js模型来查看连接

我是一个Backbone.js新手。 我只是在玩它。 我想知道模型是否与View有关。 在提供的todos示例中,我看到addOne方法中创build了一个新的View,并将其与新创build的模型关联并添加。 window.AppView = Backbone.View.extend({ // view code addOne: function(todo) { var view = new TodoView({model: todo}); this.$("#todo-list").append(view.render().el); } } 当我试图做类似的事情,我得到一个错误,说:“绑定方法不能find未定义”。 window.TodoView = Backbone.View.extend({ initialize: function() { _.bindAll(this, 'render', 'close'); this.model.bind('change', this.render); // I got the error at this place. this.model.view = this; } }); 为了解决这个问题,我必须将新创build的模型作为parameter passing给视图构造函数,并且我需要执行this.model = task来关联它。 window.TodoView = Backbone.View.extend({ initialize: […]

使用Backbone.js路由器浏览通过require.js模块化的视图

我将我的意见和路由器分开与要求单独的文件。 然后我有一个main.js文件实例化路由器,并呈现我的默认视图。 我的路由器有视图('查看/:id')和编辑('编辑/:id')作为路由。 在main.js中,当我实例化路由器时,我可以硬编码router.navigate('View / 1',true),导航工作正常。 在我的视图文件中,当我点击编辑链接时,我想调用router.navigate('View /'+ id,true),但我不知道我应该怎么做。 我已经成功地调用Backbone.history.navigate('View /'+ id,true),但我不觉得我应该依赖全局Backbone对象。 我尝试通过({路由器:appRouter})到我的意见,所以我可以使用this.options.router.navigate(),但是这不是为我工作。 如果你好奇,下面是我的应用程序的一堆代码: 路由器: define(['./View', './Edit'], function (View, Edit) { return Backbone.Router.extend({ routes: { 'View/:id': 'view', 'Edit/:id': 'edit' }, view: function (id) { var model = this.collection.get(id); var view = new View({ model: model }); view.render(); }, edit: function (id) { var model = […]

backbone.js ajax请求的全局error handling程序

有没有办法绑定一个error handling程序的ajax请求由backbone.js执行? 我的情况:我可以随时得到401(未经授权),所以我需要显示loginpopup窗口。

Rails的 – 如何将CSRF保护添加到在JavaScript中创build的窗体?

我使用的是backbone.js,效果很好。 但我作为一个JavaScript模板创build的表单缺lessrails csrf保护令牌。 如何将它添加到我在JavaScript中创build的模板?

轨道和主干一起工作

我刚开始看MVC结构,首先我看看backbone.js是如何工作的,现在我已经完成了Code School的僵尸轨道 。 我知道我没有深入研究过这个问题,但是我有一个问题要开始。 你可以一起使用这些库吗? 我已经学会了如何在两者中创buildmodels , views等,但是在创build真正的应用程序时,是否同时使用backbone和rails? 如果是这样… 什么时候使用backbone.js模型与rails模型? 也许我只是走在自己的前面,需要继续练习和做教程,但我似乎无法直接find任何东西。 谢谢!

如何清空Backbone.js集合

我惊讶地发现这不起作用: coll = new Backbone.Collection for i in [1..1000] coll.add new Backbone.Model() console.log coll.length # 1000 coll.remove coll.models console.log coll.length # 500! 我明白为什么这个奇怪的结果会或多或less地出现,虽然这对我来说似乎是一个错误。 无论如何,什么是最好的select,而不诉诸像_reset这样的内部方法(无论如何,因为我想要触发适当的remove事件,这是不行的)?