草庐IT

backbone-events

全部标签

javascript - Backbone Collection 和 Marionette CompositeView 中未定义的模型原型(prototype)

尝试从值列表填充集合时,我收到有关集合的model的prototype未定义的错误。看着thisquestionaboutasimilarproblem,我已经尽我最大的能力检查了模型是否在实例化集合之前实际创建。在从服务器获取数据并尝试使用来自应该填充到其中的数据。注意:使用Backbone0.9.10模型MyItemModel=Backbone.Model.extend({});收藏MyCollection=Backbone.Collection.extend({model:MyItemModel});CompositeView的相关代码MyCompositeView=Backbo

javascript - Event.keyCode 不适用于 'on input' - 未定义

目前我正在为项目开发一项功能,并且event.keyCode出现不适用于“输入时”触发器。我正在使用谷歌浏览器31和jQuery1.10.2。这是我在我的方法中尝试的:input.on('input',function(event){console.log("event.charCode:"+event.charCode);console.log("event.keyCode:"+event.keyCode);console.log("event.which:"+event.which);console.log("window.event?event.keyCode:event.whi

javascript - 如何在不指定模型名称的情况下从该模型的实例调用静态 Backbone.Model 函数?

我有一些静态属性,我想从我的Backbone.Model对象的实例中访问这些属性。我知道我可以硬编码父构造函数来调用该方法,但这会阻止我使用多态静态函数。例如,我希望能够在必要时覆盖ExtendedInventory中的foo函数,而无需更改任何其他代码。varInventory=Backbone.Model.extend({},//STATIC{foo:function(){alert('bar');}});vari=newInventory({});i.constructor.foo();//Thisworks!varExtendedInventory=Inventory.exte

javascript - Backbone.js 在集合添加时触发渲染两次

我正在使用Todos示例应用程序bundledwiththelatestversionofBackbone(0.9.2)在学习Backbone.js的同时。我的问题是,为什么应用程序设计为在将模型添加到Todos集合时触发渲染事件两次?如果我将这一行放在TodoView的渲染函数中://Re-renderthetitlesofthetodoitem.render:function(){console.log("Rendering!");this.$el.html(this.template(this.model.toJSON()));然后“渲染!”在控制台中出现两次。我理解这是因为Vi

javascript - 如何仅使用 Javascript 在 Backbone.js 中引导集合

上下文:我正在构建一个需要多个大型引用数据集合才能运行的应用程序。我仅限于HTML和Javascript(包括JSON)。问题:我如何在Backbone.js中引导一个集合,其中集合对象在服务器上是JSON格式并且我只使用Javascript?这是我已经知道的:Backbone.js引导最佳实践需要Rails或其他一些服务器端语言(http://backbonejs.org/#FAQ-bootstrap)。大多数JavascriptI/0操作都是异步的,例如从服务器加载JSON。使用fetch()来引导数据被认为是Backbone.js中的反模式。fetch()也是一个异步操作。这是我

javascript - Backbone 和 RequireJS 有效加载

我在互联网上看了很多如何开始使用requireJS开发BB应用程序的示例,但我有点迷茫。我认为AMD的目标是仅在文件确实需要时才加载它们。不早了。为什么我只看到开发人员将几乎所有文件作为依赖项放在他/她的主文件开头的示例?举个例子:https://github.com/jcreamer898/RequireJS-Backbone-Starter/tree/master/js此应用程序立即加载main.js,它依赖于app.js,它加载routers/home.js,它需要views/view.js,它加载View的模板和models/model.js,它......并结束。我看不出如何

javascript - 未捕获的类型错误 : Cannot call method 'on' of undefined - Backbone. js

我的应用程序出现错误,不知道为什么。UncaughtTypeError:Cannotcallmethod'on'ofundefined它发生在我的CollectionView上,遵循代码:App.WorkoutsView=Backbone.View.extend({initialize:function(){this.collection.on('add',this.addOne,this);this.collection.on('reset',this.addAll,this);},render:function(){this.addAll();returnthis;},addAll

javascript - Node.js 事件发射器 : How to bind a class context to the event listener and then remove this listener

有没有办法在事件监听器方法中访问类上下文并有可能删除监听器?示例1:import{EventEmitter}from"events";exportdefaultclassEventsExample1{privateemitter:EventEmitter;constructor(privatetext:string){this.emitter=newEventEmitter();this.emitter.addListener("test",this.handleTestEvent);this.emitter.emit("test");}publicdispose(){this.emi

JavaScript : Simulate Key Events into Textbox/Input

尽管有很多关于如何在JS中模拟按键(keydown/keypress)的文章,但似乎没有一种解决方案适用于我正在使用的浏览器(FirefoxESR17.0.7、Chrome28.0.1500.72、IE10).我测试过的解决方案取自here,here,和here.我想做的是模拟文本区域/输入中的任何击键。虽然我可以追加/删除直接更改“值”的字符,但我看不到其他选项,只能为“向上”、“向下”、“主页”等键输入模拟。根据documentation,应该很简单。例如:vare=document.createEvent("KeyboardEvent");if(e.initKeyboardEve

javascript - event.key 在移动浏览器中对于 keyup、keydown 和 keypress 是未定义的

下面的代码应该简单地抑制任何按键并将按下的键添加到一个div中。这在桌面上运行良好,但在移动设备(safari和chrome)上event.key未定义。varstr='';varel=document.getElementById('#test');document.addEventListener('keypress',function(event){str+=event.key;event.preventDefault();el.innerHTML=str;})event.keyCode和event.keyIdentifier都可用,但将它们转换为字符串会在不同的键盘布局和语言上