如何检索backbone.js模型实例的模型名称?例如:varTopic=Backbone.Model.extend({})vartopic=newTopic({type:'question'})vardoSomethingWithTopic=function(topic){//checkifpassedintopicisoftypeTopic//somethingliketopic.constructor.name==='Topic'}doSomethingWithTopic(topic)我意识到我可能模糊了backbone.js模型和类之间的界限,因此如果需要,我愿意采用其他方式来
如何将Backbone.sync替换为什么都不做?我的应用程序有一个“提交”按钮,它会为我执行AJAXPOST,所以我不想使用Backbone.sync提供的自动魔术默认行为。我也不想使用BackboneLocalStorage适配器,因为我正试图使该站点与IE6和7兼容。也就是说,我几乎只是希望Backbone除了将记录保留在JS内存中(类似于Spine.js)之外什么也不做。这可能吗? 最佳答案 最简单也可能是最好的方法不是替换Backbone.Sync,而是简单地忽略它。以下是您不想调用的方法:集合:获取创建模型:获取保存摧毁
在jsfiddle中可以使用例如jQuery。但是我看不到任何引用,例如下划线或backbone.js。如果我运行这个demo我收到错误:UncaughtReferenceError:_isnotdefined如何在jsfiddle中使用underscore.js或backbone.js库? 最佳答案 在左侧的“添加资源”按钮下添加所需库的URL。参见http://jsfiddle.net/alnitak/BwHxv/ 关于javascript-使用jsfiddle:howcanIuse
一个小型测试应用程序是这样设置的:init.js://@codekit-prepend"vendor/jquery-1.7.2.js"//@codekit-prepend"vendor/underscore.js"//@codekit-prepend"vendor/backbone.js"//Setupnamespacefortheappwindow.app=window.app||{};//@codekit-append"models/Ride.js"Ride.js:(function(){window.app.Ride=Backbone.Model.extend({initiali
backbonejs中的View.remove()函数从DOM中删除View本身的容器元素,防止重新创建已删除的View。知道如何处理这种情况这是我的代码,varAttributeView=Backbone.View.extend({el:$("#attrs"),template:_.template($('#attrs-template').html()),initialize:function(){},render:function(eventName){$(this.el).html(this.template(this.model.toJSON()));returnthis;}
Collection.bind('change',this.function,this);Collection.bind('add',this.function,this);Collection.bind('remove',this.function,this);Collection.bind('reset',this.function,this);我知道这四个,但其余的是什么?模型绑定(bind)呢?那些事件是什么?我怎么找不到指定所有绑定(bind)的文档.... 最佳答案 有点hiddenintheFAQ.“添加”(模型、集合
我是Backbone.js的新手。对于试验/初始开发,我将所有内容都放在标签的一页上,但我开始将代码分离到一个单独的.js文件中。在我这样做之后,我收到来自路由器的错误。未捕获的类型错误:对象[对象对象]没有方法“应用”这是我的路由器代码:varAppRouter=newBackbone.Router.extend({routes:{":uuid":"details"},details:function(uuid){//loaddetailsnewDetailView({id:uuid,el:$('#detailView')});}});varappRouter=newAppRoute
这是我的app.js文件。我需要从LandingView类的navigateToLogin方法中访问路由器的navigate方法。但是由于appRouter是在View之后定义的,因此它无法从View中识别路由器。所以我需要找到一种从任何类或方法全局访问路由器的方法。我怎样才能解决这个问题?varLandingView=Backbone.View.extend({tagName:'div',id:'landing',className:'landingpad',events:{'clickbutton#login':'navigateToLogin',},render:function
我使用Backbone.js,有时使用viewsevents没有正确绑定(bind)。我可以在jQuery中使用$(viewselector).data()检查事件绑定(bind)情况。大多数时候有事件,有时没有!是否有任何我应该注意的已知事情会导致这种情况? 最佳答案 当View初始化时,事件被委托(delegate)给this.el。所以你需要:通过为构造函数提供“el”选项来指定元素来创建View在您的View中定义el、标签、id、类名,以直接在页面上创建或查找您的元素。将呈现的View附加到View的“el”元素确保在创建
我在一个集合中有一个用户列表(准确地说是六个),其中包含“名字”、“姓氏”属性。进行提取时,下面的比较器按“名字”对它们进行排序,并且工作正常。comparator:function(user){returnuser.get("firstname").toLowerCase();}但如果我稍后尝试按不同的值(即“lastname”)对集合进行排序,则它不起作用。顺序保持不变。this.collection.sortBy(function(user){returnuser.get("lastname").toLowerCase();});我做错了什么?更新所以从sortBy返回的数据是经