草庐IT

backbone-boilerplate

全部标签

javascript - Backbone 这种困惑

我有以下代码:varGoalPanelView=Backbone.View.extend({//BindtothegoalpanelDOMelementel:$("#sidebar-goals"),//Initializethecollectioninitialize:function(){this.collection=Goals;this.collection.bind('add',this.appendItem);},//CreateanewgoalwhenauserpressesenterintheentergoalinputcreateOnEnter:function(e){

javascript - backbone.js 和具有多个浏览器选项卡/窗口的本地存储会覆盖数据

只是一个关于将Backbone.js与LocalStorage一起使用的非常简短的问题:我在LocalStorage中存储了一个事物列表(主干集合)。当我的网站在多个浏览器窗口/选项卡中打开并且两个窗口中的用户都向列表中添加内容时,一个窗口的更改将覆盖另一个窗口中所做的更改。如果您想自己尝试,只需使用示例Backbone.jsTodo应用:打开http://backbonejs.org/examples/todos/index.html在两个浏览器选项卡中在第一个选项卡中添加项目“item1”,在第二个选项卡中添加“item2”刷新两个选项卡:“item1”将消失,您将只剩下“item

javascript - 覆盖 Backbone.Collection.prototype.add

是否可以像这样在backbone中全局覆盖collection.add方法:Backbone.Collection.prototype._add=Backbone.Collection.prototype.add;Backbone.Collection.prototype.add=function(models,options){var=newModels=models.items;Backbone.Collection.prototype._add(newModels,options);}我使用的api始终包含下一级集合的实际模型。在items下,我发现自己覆盖了所有集合的.add方

javascript - 多种分类的 Backbone.js 集合

我有一个包含名称和日期的待办事项列表。我希望能够使用标题或日期对列表进行排序。我该怎么做?比较器只允许一种类型的排序。谢谢。 最佳答案 可以在比较器中实现更多逻辑,以便您可以抽象出一些排序逻辑:varCollection=Backbone.Collection.extend({model:myModel,order:'name'comparator:function(model){if(this.order==='name'){returnmodel.get('name');}else{returnmodel.get('date')

javascript - 使用 Marionette.CompositeView 过滤 backbone.collection 的正确方法

我有一个Marionette.CompositeView需要渲染一个集合。我想在fetch和add操作上过滤这个集合。我尝试使用以下代码(1),但出现以下错误(2)。任何想法,谢谢。(1)varmyCompositeView=Marionette.CompositeView.extend({initialize:function(){this.collection=app.taskCollection.where({type:'todo'});}});(2)//UncaughtTypeError:Objecthasnomethod'on' 最佳答案

javascript - backbone.js 清空一个集合

我需要清空一个集合,按顺序移除每一项。this.nodes.each(function(node){this.nodes.remove(node);},this);不起作用,因为随着每个节点被删除,它会更改集合的长度。制作一个临时数组,然后迭代该数组。有没有更好的办法? 最佳答案 尝试this.nodes.reset()除非你需要remove事件。否则:varnodes=this.nodes;while(nodes.length>0)nodes.remove(nodes.at(0));

javascript - 为什么 instanceof 关键字不适用于 Backbone js 模型?

我正在构建一个涉及继承和使用instanceofjavascript关键字的BackboneJS应用程序。我有以下代码:app.Sport=Backbone.Model.extend({defaults:{id:0,title:'Running'}});在代码的后面,我通过键入来实例化一个新的Sport:varnewSport=newapp.Sport();我可以毫无问题地操作这个新创建的实例。但是,因为有一个但是,instanceof关键字在询问我的实例类型时总是返回false:console.log('isnewSportaSportinstance?'+newSportinsta

javascript - 我如何销毁这个 Backbone.js View 实例?

varCheckboxView=Backbone.View.extend({tagName:'div',template:_.template(item_temp,{}),events:{'click.checkoff_friend':'toggleCheckFriend',},initialize:function(){},render:function(){},toggleCheckFriend:function(){//destroythisViewinstance.}});varcv=newCheckboxView();如何销毁实例?激活切换后,我希望该View的实例永远消失。

javascript - 新保存的 backbone.js 模型的 ID

Backbone.js在创建和保存新模型时发出POST请求,但它不会考虑要保存的模型(即进一步保存PUT中的结果而不是POST),直到模型有一个id..如何服务器是否应该返回新创建模型的ID,以便backbone.js可以设置它(即,它应该如何响应初始POST)?如果backbone.js不处理这个问题,我认为最好的方法是使用成功处理程序来设置ID? 最佳答案 您有两个选择。第一种是为POST请求返回与显示操作的GET请求相同的JSON结构(返回单个项目)。这使用单个请求。来自documentation:Setahashofmode

javascript - Backbone.js - 暂时禁用(事件) View

TL;DR如何暂时禁用一个View以便我可以安全地加载另一个View,然后安全地关闭加载的View以返回到原始View?我有以下场景:用户打开/search加载SearchView。用户点击按钮执行搜索。SearchView中的集合充满了数据,UI会更新以反射(reflect)这一点。用户点击结果项。SearchView被禁用(只需要禁用events?)。ItemView已加载,显示项目详细信息。用户点击按钮关闭ItemView。SearchView已重新启用。实现第5点和第8点的最佳方法是什么?我正在考虑调用SearchView.unbind()(对于第5点)和SearchView.