onRenderd在Meteor中找不到元素
onRendered cannot find element in Meteor
我有一个模板
{{#if hasItems}}
<ul id="myId">
{{#each items}}
{{> item}}
{{/each}}
</ul>
{{else}}
<p>No items</p>
{{/if}}
和
Template.itemList.onRendered( function () {
var el = this.find( '#myId' );
} );
但是从未找到具有id="myId"
的元素,因为模板本身没有项目,因此在呈现模板时元素<ul id="myId">
不存在。
我该怎么做才能确保元素在渲染时存在?
我想我可以var el = this.find( '#myId' );
放在Tracker.autorun
里面或制作一个嵌套模板
<template name="hasItems">
<ul id="myId">
{{#each items}}
{{> item}}
{{/each}}
</ul>
</template>
并在hasItems
为 true 时包含此模板,然后对hasItems
使用 onRendered
而不是外部模板。
但这不是有点丑陋的黑客吗?
这是你应该做的
模板
<template name="itemList">
{{#if hasItems}}
{{> showItems }}
{{else}}
<p>No items</p>
{{/if}}
</template>
<template name="showItems">
<ul id="myId">
{{#each items}}
{{> item}}
{{/each}}
</ul>
</template>
渲染处理程序
Template.itemList.helpers({
hasItems: function() {
// do you have items?
}
});
Template.showItems.onRendered(function (){
var el = this.find( '#myId' );
});
Template.showItems.helpers({
items: function() {
// return the items
}
});
相关文章:
- [Vue warn]:找不到元素
- 在页面中找不到元素的正确位置.函数未考虑填充
- JQuery找不到元素
- 在Selenium Web驱动程序2.0中找不到元素
- 没有这样的元素:找不到元素:正在验证web元素是否丢失
- jQuery没有'找不到元素或其属性
- 量角器 3.1.1 + 角度 2:找不到元素的可测试性
- jQuery .each() 在 wooCommerce header cart list 中找不到元素
- jQuery 找不到元素
- getElementsByClassName() 在 Firefox 25 中找不到元素
- 在网页上找不到元素,因为它加载了基于javascript的错误并在几秒钟后隐藏(注册表单)
- 如果jQuery不抱怨/抛出错误'在选择器中找不到元素
- jQuery在ngView加载的元素[AngularJS]上找不到元素
- Rails/Javascript选择器赢得'找不到元素
- 可以'在window.deocument.forms[0]中找不到元素
- CasperJS找不到元素,即使我可以在开发人员工具中按CTRL-F它
- PHP或Javascript:找不到元素错误
- onRenderd在Meteor中找不到元素
- 为什么它找不到元素的内部 HTML
- ' getElementById '在' '标签中找不到元素