Tag: 骨干视图

Backbone JS:可以在其他视图中触发更新吗?

在我的简单项目中,我有2个视图 – 订单项视图(品牌)和应用程序。 我附加了允许select多个项目的function: var BrandView = Backbone.View.extend({ 一些代码 toggle_select:function(){ this.model.selected =!this.model.selected; if(this.model.selected)$(this.el).addClass('selected'); else $(this.el).removeClass('selected'); 返回这个; } }); var AppView = Backbone.View.extend({ 一些代码 delete_selected:function(){ _.each(Brands.selected(),function(model){ model.delete_selected(); }); 返回false; }, }); 事情是,我想知道有多less项目被选中。 在这个设置中,select不会影响模型,因此不会触发任何事件。 从MVC的概念我明白,意见不应该直接与其他意见交谈。 那么AppView如何知道在BrandView中select了什么? 更具体地说,我AppView知道有多less项目被选中,所以如果select多于1,我会显示一个多选的菜单。

Backbone.js视图中$ el和el有什么区别?

你能告诉在Backbone.js意见中$el和el的区别吗?

将backbone.js视图附加到现有元素与将el插入到DOM中

我正在实现我的第一个实际的非教程Backbone应用程序,并且有关使用backbone.js的一个方面的2-ish问题,这个方面与我不一致,这涉及到将视图的呈现的el注入DOM vs.使用el的现有元素。 我怀疑我会在这里为您提供几个“可教授的时刻”,并感谢您的帮助。 在Web中看到的大多数Backbone View示例在创build视图时指定tagName,id和/或className,从而创build一个从DOM中未附加的el。 他们通常看起来像这样: App.MyView = Backbone.View.extend({ tagName: 'li', initialize: function () { … }, render: function () { $(this.el).html(<render an html template>); return this; } }); 但是这些教程并不总是解释他们如何推荐将渲染的el放入DOM中。 我已经看到了几种不同的方式。 所以,我的第一个问题是:哪里是调用视图的渲染方法,并将其插入到DOM的适当位置? (不一定是同一个地方)。 我已经看到它在路由器,在视图的初始化或渲染function,或只是在根级文档就绪function完成。 ( $(function () )。我可以想象任何这些工作,但有一个正确的方法来做到这一点? 其次,我从一些HTML标记/线框开始,将html部分转换为与骨干视图相对应的js模板。 而不是让视图渲染一个独立的元素,并在html中提供一个锚点来坚持它,我觉得它更自然,当只有一个元素的观点,它不会消失,使用现有的,清空的包装元素(通常是div或span )作为el本身。 这样,我不必担心在文档中find插入未连接的el的地方,这可能最终会看起来像这样(注意额外的分层): <div id="insert_the_el_in_here"> <!– this is all that's in the original HTML doc –> […]

Backbone.View“el”混淆

应如何处理视图? 它必须被设置,否则事件不会被触发(见这里 )。 但是,它应该是一个已经在网页上的元素? 在我的应用程序中,我将一个(jQuery模板)模板渲染到Fancybox中。 在这种情况下, el应该是什么?