假设我有这个:view1.listenTo(model,'change',function(){console.log('test1');});view2.listenTo(model,'change',function(){console.log('test2');});是否保证“test1”总是先打印? 最佳答案 我不知道听众以不同的方式工作。我已经阅读了backboneJs代码,并且我已经看到listenTo将回调推送到一个数组中。当事件被触发时,它会循环一个包含事件回调的数组。vartriggerEvents=functio
我是Backbone的新手,我想知道这方面的最佳实践-我想要一种与subview的父View进行通信的简单方法,即调用父View的方法。下面使用“桌面”和“文档”View的基本示例:classDesktopViewextendsBackbone.View{constructor(options?){super(options);this.el=$('#desktop');this.createDocument();}createDocument(){dv=newDocumentView();$(this.el).append(dv.render());}}classDocumentVi
这真的让我很困惑,我认为我很愚蠢,但我已经搜索并做了我能做的一切。每当我声明一个View并使用jasmine运行BDD测试时,它总是返回“undefinedisnotafunction”。这是代码window.LocationView=Backbone.View.extend({initialize:function(){//createnewmarkerfirstthis.marker=newgoogle.maps.Marker({title:this.model.get('name'),draggable:true,animation:google.maps.Animation.D
我有一个主干View,它为传入其中的每个模型创建一个新的div。但是,我无法在View上触发任何类型的事件(单击a.change-status),我认为这是因为其中的元素也是从模板生成的。如果有解决办法,请告诉我。varvideoDivView=Backbone.View.extend({el:'',initialize:function(){_.bindAll(this);this.render();this.model.on('change:published',this.enableSaveButton);},events:{'clicka.change-status':'cha
在BackboneJS中,当我获取一个集合时,我应该获取整个集合还是其中的一小部分?例如,我在mongoDB中有新闻提要集合,可能有1000多个项目。当用户点击页面时,我只想向他们展示最新的10个项目,并带有“加载更多”选项。但是,如果他们通过URLhttp://site.com/#/feed/:itemID访问特定项目,我希望能够调出该项目的记录。1。我应该首先获取多少文档?2。我如何通过ID获取任何项目? 最佳答案 在对我的集合调用fetch时,我最终使用了{add:true}语句。这可以防止集合被获取的结果替换,而是将结果附加
使用Backbone.View.extend我创建了一个名为MyView的主干View。在我看来,我已经创建了一堆自定义函数。我遇到的问题是我需要创建一个扩展MyView的新BackboneView。我不想创建一个新的View和重复的代码...我只是想利用继承来扩展功能...问题是我不知道该怎么做,我也不知道'知道如何调用Backbone中的super函数。*编辑-感谢下面一些人的回答,但仍然不太确定如何调用父方法。例如://insubView{initialize:function(){//wouldliketodosomethinglikesuper.initialize()//h
是否可以将模板嵌套在模板中并通过主干View访问?例如,我有View1使用Template1,View2使用Template2。Template2实际上需要位于Template1内部的DIV中。我将template2的DIV容器放在template1中并使用适当的id,但在呈现页面时它不显示。如果我从Template1中删除Template2div容器并将其放在页面正文中,它就可以正常工作。所以只是想知道这是否可能,或者我是否必须嵌套View/模型等才能使其工作?Template2中的数据在技术上与Template1无关,只是需要显示在页面上嵌入Template1的位置。
我很想知道为什么重置Backbone集合不会触发模型事件。但是,当模型从集合中物理移除时触发模型事件似乎是合乎逻辑的。这是故意的还是我遗漏了什么?如果backbone不做这种事情,那么委托(delegate)这样的事件是一个很好的做法。为什么backbone在其集合重置时不触发模型事件?varTicketModel=Backbone.Model.extend({defaults:{name:'crafty',email:'dwq@dwqcqw.com'},initialize:function(){this.on("all",function(event){console.log(ev
我一直在尝试传递一个模型对象以在我的模板中进行评估,但没有成功。我尝试了以下但没有运气仪表板模型.jsvarmyMod=Backbone.Model.extend({defaults:{name:"mo",age:"10"}});我的view.jsvardashView=Backbone.View.extend({el:'.content-area',this.mymodel=newmyMod({}),template:_.template(dashBoardTemplate,this.mymodel),initialize:function(){},render:function()
我有一个调用subview的主干View:lr.MapView=Backbone.View.extend({el:$('#map'),foo:"bar",initialize:function(){varthat=this;_.bindAll(this,"render","addAllEvents","addOneEvent");this.collection=newlr.Events();this.collection.fetch({success:function(resp){that.render();that.addAllEvents();}});},addAllEvents: