在Backbone.js应用程序的DOM中将子视图附加到父视图之外
Append child view outside parent view in DOM in Backbone.js app
在我的主干应用程序中,我在父视图中创建了一个popover,并将其添加到DOM中,如下所示
afterRender: function() {
this.$el.append(
new Popover.Views.Default({
stick:'right',
offsetTop: 3,
offsetRight: 5,
content: "Foo",
reference: this.$el
}).render().$el
);
},
toggle: function(){
app.vent.trigger('popover34:toggle');
}
但是popover被附加到其父视图中。父视图是一个链接,这会导致popover中出现一些css问题。
我的问题是,做这样的事情安全吗:
afterRender: function() {
$('body').append(
new Popover.Views.Default({
stick:'right',
offsetTop: 3,
offsetRight: 5,
content: "Foo",
reference: this.$el
}).render().$el
);
}
或者有没有办法将其设置在父视图旁边?问题是,当我切换popover时,它将被多次添加到DOM中。
为了在这里支持(并希望澄清)Isaac的答案,您的"父"视图应该在一个区域,Popover
视图应该在另一个区域。
Brian Mann在Marionette.js上制作了一组出色的视频和出色的应用程序设计,其中一个专门展示了您的确切场景。
祝你好运,Aaron
看起来您正在使用Marionette。使用Marionette,处理此问题的一种方法是使用区域。来自文档:
区域提供了一种一致的方式来管理视图并在应用程序中显示/关闭它们。他们使用jQuery选择器在正确的位置显示您的视图。
您可以将您的区域放在任何您喜欢的地方,并使用事件聚合器触发它。此外,它会自动关闭旧视图,这样就不会出现僵尸。
相关文章:
- angular.js没有'无法在PhoneGap中处理视图标记
- backbone.js无法渲染视图
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 删除移动视图粘性js上的粘性导航栏
- Backbone.js将模型绑定到视图时出错
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- Backbone.js视图中的多个模型
- 带有jquery插件的backbone.js视图
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 使用knockout.js将数组绑定到视图模型
- 如何在主干js中解析视图中的消息
- 似乎无法将功能绑定到骨干网中的视图.js
- 嵌套依赖主干.js具有 require.js 主干的视图.js导致视图作为对象而不是函数加载
- 如何在主干中显示视图.js(路由器.js中不显示警报)
- 如何从主干中的视图呈现视图.js
- Extjs 4 -停止控制器试图加载视图js
- “this.model"不工作的点击视图.JS支柱
- MVC部分视图js文件不工作调试
- Rails3视图- JS模板目录结构