草庐IT

Marionette

全部标签

javascript - Backbone.Marionette.ItemView 渲染后元素未准备好?

即使在Backbone.Marionette.ItemView的onRender方法中,我也无法访问元素。例如,我有:模板:`项目View:View=Backbone.Marionette.ItemView.extendtemplate:searchTemplateonRender:@setTypeahead['a','b','c','d']setTypeahead:(valueArray)->console.log$('#searchBox')$('#searchBox').typeaheadsource:valueArray意外地,记录到控制台的对象不包含输入元素。选择器不起作用。

javascript - Backbone Marionette 和 RequireJS 模块混淆——模块似乎未定义

我刚开始使用Marionette,我正在阅读并关注Marionette-AGentleIntroduction通过DavidSulc.这是一本非常好的读物,很容易理解如何使用companionrepository构建示例应用程序ContactManager.但是,我之前已经使用RequireJS建立了一个项目,想将那本书的思想和概念转化并整合到这个项目中。我实际上还没有走那么远,我想我可能对Marionette模块与AMD模块的结合使用有点困惑,这导致了undefined对象。更具体地说,让我列出app.js,listView.js和listController.js这应该是这个com

javascript - 如何从 Marionette.js ItemView 模板访问 Backbone.Model 方法?

我正在尝试使用backbone/marionette.js从.eco模板中访问模型的方法。我有一个带有day()方法的Expense模型,它使用moment.js返回“13th”;例如:classExpenseextendsBackbone.Modelday:->moment.get('date').format('Do')我可以按如下方式创建一个新的Expense,并调用day()方法:coffee=newExpense({name:"Coffee",amount:2.50,date:"2014-01-13T13:50:00Z"})coffee.day()#13th但是,尝试从以下V

javascript - 使用 Marionette.CompositeView 过滤 backbone.collection 的正确方法

我有一个Marionette.CompositeView需要渲染一个集合。我想在fetch和add操作上过滤这个集合。我尝试使用以下代码(1),但出现以下错误(2)。任何想法,谢谢。(1)varmyCompositeView=Marionette.CompositeView.extend({initialize:function(){this.collection=app.taskCollection.where({type:'todo'});}});(2)//UncaughtTypeError:Objecthasnomethod'on' 最佳答案

javascript - 测试来自 Backbone.View 的触发点击,它会打开一个新的 Backbone.View

我有两个主干View,MainView和PopupView。MainView包含一个帮助按钮。当帮助按钮处理程序被触发时,它会显示Backbone.View。我的问题是我应该如何从MainView模块测试这个行为?这是我关于MainView的代码:varMainView=Backbone.View.extend({events:{'click#help':'showPopUp'},showPopUp:function(){varpopupView=newPopupView();app.vent.trigger('showModal',popupView);}});这是我关于mainVi

javascript - 我如何找到神秘绑定(bind)的 Javascript 事件

我正在开发一个非常复杂的HTML5应用程序(主干、Marionette、jQuery、下划线、Handlebars、Bootstrap等),在应用程序的深处是一个带有表单的模式弹出窗口。当模式弹出时,当您第一次单击任何表单域时,表单域会自行取消选择。第一次单击后,您可以正常使用该表单。当应用程序最终加载到生产中的iFrame时(不要问),当您第一次单击任何表单字段或将鼠标悬停在任何按钮上时,整个页面将向下滚动,直到表单位于内部的div元素的顶部模态框位于页面顶部,但在它执行一次之后就不会再执行一次(混淆了吗?是的,它很复杂且分层)。我什至不知道如何开始调试这个问题(数千行代码,两把库)

javascript - Backbone.js "fat router"设计难题

在过去的2周里,我一直在学习backbone和相关工具以及编写应用程序。我遇到了设计问题,想知道有哪些可用的解决方案,以及Backbone专家是否认为这是一个问题。问题:我最终不得不将我所有的View依赖项放在我的router.js中,并且无法确定它们是否是解决该问题的方法。下面是我的router.js中的代码://router.jsdefine(['jquery','underscore','backbone','text','views/landing','views/dashboard',],function($,_,Backbone,t,LandingView,Dashboar

javascript - 在呈现 CollectionView 中的所有项目后是否会触发 Marionette.js 事件?

在Backbone.Marionette.jsCollectionViews和CompositeViews,onDomRefresh事件在DOM最初呈现时触发,并且在任何时候将项目添加到View的集合中(这有助于View的动态/“实时”性质)。在我的例子中,我想运行某个jQuery函数,但由于集合的典型长度,最好只调用此函数一次在最后一次渲染,以防止过多的函数调用在UI中呈现所有模型后,我只想做一次。是否有适合此用例的Marionette事件? 最佳答案 我整个下午都在尝试使用Erik的解决方案,但“collection:rende

javascript - 在获取模型后渲染 Marionette 区域

我想在此thread中使用DerickBailey在“通用问题解决方案”中描述的方法在获取模型后呈现View。我将在这里报告他的解决方案:MyView=Backbone.View.extend({initialize:function(){this.model.on("sync",this.render,this);},render:function(){...}});myModel=newMyModel({id:someId});newMyView({model:myModel});myModel.fetch();我的情况略有不同:我的View位于区域布局内。如果我调用Marione

javascript - Marionette - 初始化事件不触发

我有一个基本的Marionette应用,如下所示:varApp=newMarionette.Application();App.on('initialize:after',function(){console.log('init');});App.start();当我运行它时,控制台不会打印任何内容。但是,如果我添加App.on('start',function(){console.log('start');});然后打印start。有谁知道如何让前者工作? 最佳答案 您使用的是哪个版本的Marionette?initialize: