我似乎经常遇到这样的情况:我正在渲染一个View,但该View所依赖的模型尚未加载。大多数情况下,我只有从URL中获取的模型ID,例如对于假设的市场应用程序,用户使用该URL登陆该应用程序:http://example.org/#/products/product0在我的ProductView,我创建了一个ProductModel并设置其ID,product0然后我fetch().我用占位符渲染一次,当获取完成时,我重新渲染。但我希望有更好的方法。在渲染任何东西之前等待模型加载感觉没有响应。重新渲染会导致闪烁,并且在各处添加“正在加载...请稍候”或微调器会使View模板变得非常复杂(
我将d3与Backbone.js模型一起使用。当模型属性发生变化时,将触发一个事件,并用hasChanged()标志标记模型,并返回一个changedAttributes()散列。我了解如何使用d3的enter()和exit()来处理已创建或删除的模型。我无法弄清楚的是如何根据模型属性的变化修改相应的DOM元素。我可以使用Backbone助手来确定要修改的内容,但是d3的下一步是什么? 最佳答案 我在d3邮件列表上得到了一些有用的回复:http://groups.google.com/group/d3-js/browse_threa
我正在使用Backbone.js来显示人员列表及其数据。每个人都有属于自己的.div由_.template生成并包含显示此人数据的字段,以便对其进行调整。还有一个带有class=".save"的按钮.在我看来,我有一个绑定(bind)到单击此按钮的功能。我正在寻找获取值的最佳方法-div中的标签属于模型。这是我的方法,但我想知道是否有更好的方法。在我的模板中,我根据模型的ID为DOM元素动态分配了ID。我使用相同的逻辑在View中找回元素。模板"id="name_"/>"id="age_"/>"id="address_"/>Save查看events:{"click.save":"sav
有没有一种方法可以请求主干道GoogleStreetView全景数据而不是给定位置(纬度/经度)的后巷全景数据?我正在使用GoogleMapsJavascriptAPI从用户提供的家庭住址检索街景全景图。它适用于我尝试过的大多数地址,但我注意到加利福尼亚的很多特性也有后巷的街景,并且API接缝始终返回后巷全景而不是主干道(前面属性)全景图。我不想向用户展示他们家的后巷全景,而是主要道路的全景。如果我在maps.google.com上查找相同的地址,我会看到房子的前面,但当我通过API请求相同的地址时,我会看到后巷。我目前使用的流程是:地理编码地址在给定地理编码位置(纬度/经度)的情况下
我正在尝试触发click事件,但它不起作用。也许有人能看到我看不到的东西。ConnectionView=GlobalView.extend({tagName:'div',events:{"click.social-links":"check"},initialize:function(){this.render();this.model.bind("change",this.render);},render:function(){//Compilethetemplateusingunderscorevartemplate=_.template($("#connection-templa
按钮在手机上运行缓慢(由于拖动检测等原因,大多数浏览器至少延迟300毫秒)。谷歌写了一些javascript来解决这个问题:http://code.google.com/mobile/articles/fast_buttons.htmlMobileHTML5Boilerplate人员将其集成到他们的包中:https://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86我想弄清楚如何轻松地将其与主干一起使用。像这样的东西:events:{"fastbuttonbutton.save":"save"
如果我有一个Backbone集合并想创建该集合的副本并过滤掉某些条目,我该如何做到这一点同时将复制的实例保留为Backbone.Collection?例子:varModule=Backbone.Model.extend();varModuleCollection=Backbone.Collection.extend({model:Module});varmodules=newModuleCollection;modules.add({foo:'foo'},{foo:'bar'});console.log(modulesinstanceofBackbone.C
当我重新渲染主干View时,跳过重新渲染图像和谷歌地图等内容的好方法是什么?每次重新渲染View时(这很常见),我的照片和mapView往往会非常糟糕地闪烁。尤其是图像,模板引擎从头开始布局,这导致图像标签再次从服务器或缓存中获取位图。当然,我仍然希望View对布局保持某种不可知论,所以从技术上讲它不应该知道我们要显示图像,对吧? 最佳答案 我将提供一个与您的假设“Viewshouldbeagnosticofthetemplate”冲突的解决方案。如果您在模型中发生任何更改时调用render(),您的浏览器中将会闪烁,尤其是模板很大
有没有一种奇特的方法可以将View绑定(bind)到页面中已经呈现的html?例如,您的服务器加载所有页面html,然后在该html之上加载View,而无需在第一次加载页面时使用render方法。 最佳答案 我已经完成了与我认为您正在尝试做的类似的事情。就我而言,我在现有表单之上添加了Backbone功能。这是一个精简的例子:现有的HTML:Username:主干:varMyFormView=Backbone.View.extend({events:{"submitform":"formHandler"},formHandler:f
刚刚开始使用Backbone。我有一个通用View,可以将集合呈现为带有标题的列表。我目前正在将集合和标题传递给渲染方法,但这似乎有点奇怪。还有其他更规范的方式吗?例如:varListView=Backbone.View.extend({template:_.template(["","","0){%>","","","","","","None.",""].join('')),itemTemplate:_.template("()"),render:function(items,title){varhtml=this.template({items:items/*acollectio