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/