我使用这种方法导航到url,触发事件而不是将url推送到浏览器历史记录。但是Backbone.history.navigate(url,{trigger:true,replace:true})替换历史记录中以前的url。示例:浏览器历史之前本地主机:端口/urlBackbone.history.navigate(url+'/list',{trigger:true,replace:true})预期:在路由url+'/list'和浏览器历史记录localhost:port/url上触发事件实际上:触发事件但浏览器历史记录localhost:port/#url/list。以前的url被替换
我正在使用Backbone.js构建一个通常通过JSON与网络服务通信的应用程序。一个网络服务将在成功时返回JSON或在错误时返回XML(聪明,是吧?)。我需要解析此XML响应以确定错误,但Backbone以JSON为中心的思维给我带来了问题。我有一个包含解析函数的集合。当服务返回JSON时,解析函数总是被调用,在这种情况下,我只返回响应对象。然而,当服务返回XML时,我的fetch调用的错误回调函数被调用,并传递了一个带有arguments[1]的错误对象。的parseerror.进一步挖掘表明存在意外性格。为什么在抛出解析错误之前没有调用我的解析函数来解析XML?此外-为什么在成功
我想修改Odoo8中的一段JS代码(模块point_of_sale)。原代码是这样的:functionopenerp_pos_models(instance,module){...module.Order=Backbone.Model.extend({...addPaymentline:function(cashregister){varpaymentLines=this.get('paymentLines');varnewPaymentline=newmodule.Paymentline({},{cashregister:cashregister,pos:this.pos});if(
我有一个集合需要将一些数据发布到它的url以获取它需要的数据。这两个问题的答案,FetchacollectionusingaPOSTrequest?和Overridingfetch()methodinbackbonemodel,让它看起来像我应该能够让它像这样工作:fetch:function(options){this.constructor.__super__.fetch.apply(this,_.extend(options,{data:{whatever:42},type:'POST'}));},但Firebug仍然向我显示404错误,这是因为正在针对有问题的url执行GET(
我对Backbone.js比较陌生。我正在初始化一个CollectionView并在创建时传入一个集合。suggestionsView=newTreeCategoriesAutoSuggest.Views.Suggestions({collection:newApp.Collections.Suggestions(this.getSuggestions(query))});然后我渲染CollectionView。每次用户在文本框中输入查询时,都会重新生成集合并使用以下方法将其分配给CollectionView:suggestionsView.collection.set(this.ge
我是Backbone的新手,如果这个问题有点明显,请原谅。我在处理模型内部的集合时遇到问题。当集合更改时,它不会注册为模型中的更改(并且不会保存)。我的模型是这样设置的:varArticle=Backbone.Model.extend({defaults:{"emsID":$('html').attr('id')},initialize:function(){this.tags=newApp.Collections.Tags();},url:'/editorial_dev.php/api/1/article/persist.json'});如果我更新标签集合并手动保存模型,这会很好地工
使用Backbone.js让模型一直监听所有嵌套模型和集合的最佳模式是什么?我应该将嵌套模型/集合放入属性中吗?我应该手动创建亲子关系并触发事件吗? 最佳答案 与Backbone.js的大多数事情一样,您不会得到“正确”的答案,但我可以分享我是如何做到的。对于模型和View,我通常遵循以下准则:View和模型应该由“负责”它们的组件实例化。对于父子关系明确的模型或View,父模型应该实例化,通常在initialize()方法中。parent应在实例化时绑定(bind)到子事件。parent应该“意识到”child,并且可以在必要时调
我的ViewTuneBook有几个ClosedTune类型的subview。OpenTune,我还为每首曲子提供了单独的完整页面浏览量。相同的事件绑定(bind)在ClosedTune和OpenTune中,因此我设计了我的应用程序,使它们都继承自共享的“抽象”ViewTune.为了使我的应用程序更具可扩展性,我希望将每个ClosedTune的事件委托(delegate)给TuneBook,但为了可维护性,我希望使用相同的处理程序(存储的那些在Tune中)以供TuneBook使用(尽管它们显然需要包含在某些函数中)。我遇到的问题是,在TuneBook中,找到正确的ClosedTune来调
在Backbone路由器上监听方法调用时遇到问题,以确保它在给定路由上调用正确的方法。测试摘录describe'Router',->beforeEach->@router=newApp.Router()Backbone.history.start()afterEach->Backbone.history.stop()describe'routes',->it'shouldbedefined',->expect(@router.routes).toBeDefined()describe'defaultroute',->it'shouldbedefined',->expect(@route
我有一个Backbone.js集合,我有一个模型ID数组,我想填充它。我知道我可以一个一个地获取这些对象,构建一个对象数组并将它们作为数组传递给Collection的构造函数。我想做的是将对象ID数组作为初始数据传递到构造函数中,并让Collection获取它们,可能是按照this进行的。.可行吗? 最佳答案 当您在Backbone.Collection上调用“fetch”时,它会依次调用Backbone.sync,默认情况下它只向集合询问要使用的url。因此,如果您的服务器响应:/models/batch/?ids=1,2,3,4