如果我在Backbone路由器中启用pushState,我是否需要在所有链接上使用returnfalse还是Backbone路由器会自动处理?是否有任何样本,包括html部分和脚本部分。 最佳答案 这是TimBranyen在他的boilerplate中使用的模式:initializeRouter:function(){Backbone.history.start({pushState:true});$(document).on('click','a:not([data-bypass])',function(evt){varhref=
有没有办法从Backbone中删除一个属性?型号?原因是我在保存时传递了额外的数据以执行某些操作,但随后该数据会自动添加到我的模型中文档说不要直接编辑model.attributes,所以我看到的唯一其他方法是使用set方法并将属性设置为null,但这并不理想varmyModel=newModel()myModel.save({name:'Holla',specialAttr:'PleaseRemoveme'})myModel.set({tempAttr:null})if(myModel.attributes['specialAttr']==null){alert("Modeldoes
首先,为应用提供的静态页面应该是登录页面吗?其次,我的服务器端代码没有问题(它不会提供用户不应该看到的任何数据)。但是,如果用户未登录,我如何让我的应用知道返回登录表单? 最佳答案 我使用session概念来控制用户登录状态。我有一个像这样的SessionModel和SessionCollection:SessionModel=Backbone.Model.extend({defaults:{sessionId:"",userName:"",password:"",userId:""},isAuthorized:function()
this.col=Backbone.Collection.extend({model:M,comparator:function(item){returnitem.get("level");}});上面的代码按级别对项目进行排序。我想按级别排序,然后按标题排序。我可以这样做吗?谢谢。 最佳答案 @amchang87的回答绝对有效,但我发现另一个有效的方法是简单地返回一个可排序字段的数组:this.col=Backbone.Collection.extend({model:M,comparator:function(item){ret
我是Backbone.js的新手,我正在尝试找出状态变量应该存在的位置。我的用例:我有一个为一本书提供阅读界面的应用程序(我知道,经典示例,对吧?)。我的模型是Book和Page,每个模型都有集合类。应用程序的结构大致如下所示(请原谅ASCIIvisio):+------------+|Controller|+------------+|ViewsModels|+--------------++----------------+|-|IndexView|------|BookCollection||+--------------++----------------+|||+------
有没有办法在我同步时从我的模型中排除某些属性?例如,我将有关某些View状态的信息保存在我的模型中。假设我有一个选择器模块,这个模块只是在我的模型上切换一个selected属性。稍后,当我对我的集合调用.save()时,我想忽略selected的值并将其从同步到服务器中排除。是否有一种干净的方式来做到这一点?(如果您想了解更多详情,请告诉我) 最佳答案 这似乎是最好的解决方案(基于@nikoshr引用的问题)Backbone.Model.extend({//Overwritesavefunctionsave:function(att
我使用Backbone.js编写了一个模型/View/集合。我的收藏使用fetch方法从远程服务器加载模型。此集合所需的url需要一个id,如:messages/{id}。但是我没有找到将选项传递给Collection的干净方法。backbone.jsView通过在构造时传递它来接受选项:view([options]),但是集合在构造时需要一个模型列表:collection([models])。向该集合传递参数/选项的“最干净”方式是什么?缩短的代码:varMessages=Backbone.Collection.extend({model:Message,url:'http://ur
我正在尝试弄清楚如何使用backbone.js制作集合集合。我对Backbone很陌生。我有类似以下情况:+---------------++------------------+|Playlists||Playlist||---------------|0..*|------------------||+-------------->|Name|||||||||+---------------++-------+----------+|||0..*v+------------------+|Track||------------------||Name||Artist|||+----
我正在尝试了解backbone.js的一部分是如何工作的。应用程序启动后,我必须获取一组模型。我需要等到提取完成才能呈现每个View。我不是100%确定在这种情况下采用的最佳方法。varAppRouter=Backbone.Router.extend({routes:{"":"home","customer/:id":"customer"},home:function(){console.log("Home");},customer:function(id){if(this.custromers==null)this.init();varcustomer=this.customers.
我有以下主干View事件。它是一个产品View-具有三个选项卡(“全部”、“前3名”、“前5名”)我能否以某种方式将参数传递到方法声明中,使其等效于以下内容(这不起作用)?events:{"click#top-all":"topProducts(1)""click#top-three":"topProducts(2)""click#top-ten":"topProducts(3)"},topProducts(obj){//Dostuffbasedonobjvalue} 最佳答案 您可以将额外的参数放在可点击项目的数据属性中;像这样: