javascript - 测试 Marionette 布局 View 中缺失的区域元素

标签 javascript backbone.js marionette

Marionette 中是否有一种优雅的方法来测试渲染 View 后 DOM 中是否存在区域的(元素)元素?最好不要重写区域选择器并使用 jQuery 搜索 DOM。

例如 - 这个布局 View :

var view = new Marionette.LayoutView({

 regions : {
  'header' : '.header',
  'footer' : '.footer'
 },

 onRender : function() {
  if ( /* test for the existance of 'header' in the dom */ ) {
   // do something
  }
 }

});

最佳答案

优雅?不会。但 Marionette 的 view.getRegion()._ensureElement() 当元素存在时返回 true,如果元素不存在,则会抛出错误。所以你可以尝试...

 onRender : function() {
   try {
     view.getRegion("header")._ensureElement()
     // element exists
   } catch {
     //element does not exist
   }

annotated marionette source还建议有一个 allowMissingEl 选项,您可以将其设置为在元素不存在时让 _ensureElement() 返回 false,但这可能会对其余部分产生负面影响您的项目,并且可能会使调试变得更加困难。

关于javascript - 测试 Marionette 布局 View 中缺失的区域元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28586336/

相关文章:

javascript - res.render 仅在多个数据查询完成后

javascript - jQuery clone( true ) 不使用动态元素

javascript - 保护公共(public) REST API 的安全

jquery - 主干点击事件中断

javascript - 模型事件在 Marionette 中不起作用

javascript - clearTimeout() 未按预期运行

javascript - Google Closure Compiler 的 Underscore.js externs

javascript - 将数据从主干发布到 REST

javascript - CompositeView 为大型结果集 Marionette 呈现项目的速度很慢

backbone.js - 创建主干插件