草庐IT

backbone-events

全部标签

javascript - 在 backbone js 中重新创建已删除的 View

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;}

javascript - 在 Backbone.js 中, "binds"的所有事件是什么?

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.“添加”(模型、集合

javascript - Backbone.js - 未捕获的类型错误 : Object [object Object] has no method 'apply'

我是Backbone.js的新手。对于试验/初始开发,我将所有内容都放在标签的一页上,但我开始将代码分离到一个单独的.js文件中。在我这样做之后,我收到来自路由器的错误。未捕获的类型错误:对象[对象对象]没有方法“应用”这是我的路由器代码:varAppRouter=newBackbone.Router.extend({routes:{":uuid":"details"},details:function(uuid){//loaddetailsnewDetailView({id:uuid,el:$('#detailView')});}});varappRouter=newAppRoute

javascript - 如何在 Backbone js中全局访问路由器?

这是我的app.js文件。我需要从LandingView类的navigateToLogin方法中访问路由器的navigate方法。但是由于appRouter是在View之后定义的,因此它无法从View中识别路由器。所以我需要找到一种从任何类或方法全局访问路由器的方法。我怎样才能解决这个问题?varLandingView=Backbone.View.extend({tagName:'div',id:'landing',className:'landingpad',events:{'clickbutton#login':'navigateToLogin',},render:function

javascript - Backbone.js View delegateEvents 未绑定(bind)(有时)

我使用Backbone.js,有时使用viewsevents没有正确绑定(bind)。我可以在jQuery中使用$(viewselector).data()检查事件绑定(bind)情况。大多数时候有事件,有时没有!是否有任何我应该注意的已知事情会导致这种情况? 最佳答案 当View初始化时,事件被委托(delegate)给this.el。所以你需要:通过为构造函数提供“el”选项来指定元素来创建View在您的View中定义el、标签、id、类名,以直接在页面上创建或查找您的元素。将呈现的View附加到View的“el”元素确保在创建

javascript - Backbone/Underscore sortBy 不是排序集合

我在一个集合中有一个用户列表(准确地说是六个),其中包含“名字”、“姓氏”属性。进行提取时,下面的比较器按“名字”对它们进行排序,并且工作正常。comparator:function(user){returnuser.get("firstname").toLowerCase();}但如果我稍后尝试按不同的值(即“lastname”)对集合进行排序,则它不起作用。顺序保持不变。this.collection.sortBy(function(user){returnuser.get("lastname").toLowerCase();});我做错了什么?更新所以从sortBy返回的数据是经

javascript - Angular : Why is my event handled twice?

我有三个Controller:main、product、customer。ControllerA是我的“主页”的一部分。ControllerB和C取决于位置。Controller主要:varMainController=function($scope,$location,$rootScope,ToolbarService){$scope.addClicked=function(){ToolbarService.onAddButtonClick();};};app.controller({MainController:MainController});产品:varProductContr

javascript - 在 window.onbeforeunload 事件中使用 window.event.keyCode 在 javascript 中捕获 f5 按键事件始终为 0 而不是 116

我正在创建一个MVC应用程序。有必要在关闭应用程序(即窗口/选项卡)时将session中的变量设置为null,而不是在刷新应用程序时。我通过下面的代码试了一下。window.onbeforeunload=function(e){e=e||window.event;if(window.event.keyCode==116){alert("f5pressed");}else{alert("Windowclosed");//callmyc#codetomakemyvariablenull,eg:Session["myVariable"]=null;}};但是当按下F5时,“window.ev

javascript - 主干 - 为什么 collection.reset 不触发模型事件?

我很想知道为什么重置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

javascript - window.event.keyCode 如何在 Firefox 上执行?

这个问题在这里已经有了答案:ReferenceError:eventisnotdefinederrorinFirefox(2个答案)关闭6年前。我正在使用此代码来检查按键按下并在按键按下时显示字符串“Pressed”。functiondoKey($key){document.getElementById('keydown').innerHTML='Pressed';}functiondoKey2($key){document.getElementById('keydown').innerHTML='';}问题是出于某种原因它只能在Chrome上运行。我认为“window.event.k