草庐IT

backbone-events

全部标签

javascript - Backbone.js 集合比较器按多个字段排序?

this.col=Backbone.Collection.extend({model:M,comparator:function(item){returnitem.get("level");}});上面的代码按级别对项目进行排序。我想按级别排序,然后按标题排序。我可以这样做吗?谢谢。 最佳答案 @amchang87的回答绝对有效,但我发现另一个有效的方法是简单地返回一个可排序字段的数组:this.col=Backbone.Collection.extend({model:M,comparator:function(item){ret

javascript - 触发 ondrop 时 event.dataTransfer.files 为空?

好的,我已经设置了一个元素来接收文件放置事件,但是当我查看event.dataTransfer时,它是空白的。我还没有开始学习拖放式HTML5API,我对它还是有点迷糊。我正在mysite处理它.如果您不介意浏览我的代码并查看发生了什么,我们将不胜感激。正在记录整个event对象。 最佳答案 它工作正常,只是控制台有一个错误。functiononDrop(event){event.preventDefault();console.log(event.dataTransfer.files[0]);}

javascript - Backbone.js - 在哪里存储状态信息?

我是Backbone.js的新手,我正在尝试找出状态变量应该存在的位置。我的用例:我有一个为一本书提供阅读界面的应用程序(我知道,经典示例,对吧?)。我的模型是Book和Page,每个模型都有集合类。应用程序的结构大致如下所示(请原谅ASCIIvisio):+------------+|Controller|+------------+|ViewsModels|+--------------++----------------+|-|IndexView|------|BookCollection||+--------------++----------------+|||+------

javascript - 同步时排除模型属性 (Backbone.js)

有没有办法在我同步时从我的模型中排除某些属性?例如,我将有关某些View状态的信息保存在我的模型中。假设我有一个选择器模块,这个模块只是在我的模型上切换一个selected属性。稍后,当我对我的集合调用.save()时,我想忽略selected的值并将其从同步到服务器中排除。是否有一种干净的方式来做到这一点?(如果您想了解更多详情,请告诉我) 最佳答案 这似乎是最好的解决方案(基于@nikoshr引用的问题)Backbone.Model.extend({//Overwritesavefunctionsave:function(att

javascript - 如何找出 touchmove javascript 事件的实际 event.target?

=我正在尝试在我的Web应用程序中开发一个简单的拖放UI。可以用鼠标或手指拖动项目,然后将其放入多个放置区之一。当一个项目被拖动到放置区(但尚未释放)时,该区域会突出显示,标记安全着陆位置。这对鼠标事件非常有效,但我在iPhone/iPad上仍然使用touchstart/touchmove/touchend系列。问题是当一个项目的ontouchmove事件处理程序被调用时,它的event.touches[0].target总是指向原始HTML元素(项目)而不是当前元素在手指下。此外,当用手指将某个项目拖过某个放置区时,根本不会调用该放置区自己的touchmove处理程序。这实质上意味着

javascript - Backbone.js 集合选项

我使用Backbone.js编写了一个模型/View/集合。我的收藏使用fetch方法从远程服务器加载模型。此集合所需的url需要一个id,如:messages/{id}。但是我没有找到将选项传递给Collection的干净方法。backbone.jsView通过在构造时传递它来接受选项:view([options]),但是集合在构造时需要一个模型列表:collection([models])。向该集合传递参数/选项的“最干净”方式是什么?缩短的代码:varMessages=Backbone.Collection.extend({model:Message,url:'http://ur

javascript - IE8 和 Firefox 中的 event.toElement?

我注意到在Chrome和IE9中,对于onmouseout事件有一个event.toElement属性(所以你可以确定鼠标现在指向哪个元素).我在Firefox中找不到类似的属性。不幸的是,我不能使用jQuery来处理这些事件,我必须使用原生js。如有任何建议,我们将不胜感激。 最佳答案 而不是event.toElement你应该使用这个:event.target 关于javascript-IE8和Firefox中的event.toElement?,我们在StackOverflow上找到

javascript - Backbone.js 集合集合

我正在尝试弄清楚如何使用backbone.js制作集合集合。我对Backbone很陌生。我有类似以下情况:+---------------++------------------+|Playlists||Playlist||---------------|0..*|------------------||+-------------->|Name|||||||||+---------------++-------+----------+|||0..*v+------------------+|Track||------------------||Name||Artist|||+----

javascript - div 的子项是否有可能设置为指针事件 : none to have pointer events?

设置为pointer-events:none的div的子项是否可能有指针事件?我需要包含另一个div的div以允许指针事件通过,但div本身仍然有事件。这可能吗? 最佳答案 是的,这是可能的,您基本上只是描述了如何实现。为parent禁用它并为child启用它。pointer-events几乎所有浏览器都支持,包括IE11请注意,pointer-events:all仅适用于SVG。对于HTML,只有auto和none是受支持的值。.parent{pointer-events:none;}.child{pointer-events:a

javascript - 如何等待在 backbone.js 中呈现 View 直到获取完成?

我正在尝试了解backbone.js的一部分是如何工作的。应用程序启动后,我必须获取一组模型。我需要等到提取完成才能呈现每个View。我不是100%确定在这种情况下采用的最佳方法。varAppRouter=Backbone.Router.extend({routes:{"":"home","customer/:id":"customer"},home:function(){console.log("Home");},customer:function(id){if(this.custromers==null)this.init();varcustomer=this.customers.