Ben*_*row 4 javascript jquery templates startup meteor
在Meteor文档中,它表示Meteor.startup将在DOM之后调用并且所有模板都已处理完毕.但是,我的代码Meteor.startup就像DOM元素不在那里一样.
在.js:
Meteor.startup(function () {
console.log($('.draggable').length);
});
Run Code Online (Sandbox Code Playgroud)
在.html中:
<template name="item">
<div class="draggable ui-widget-content">
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
在控制台中我看到:
0
但在页面上我可以看到我的物品.事实上,如果我Template.item.rendered在mouseover事件中或事件中包含我的JQuery ,我会获得正确的数组长度.那么为什么startup函数没有准备好使用我的DOM元素呢?
我猜你的代码看起来像这样,但如果我错了就告诉我:
<template name="list">
{{#each items}}
{{> item}}
{{/each}}
</template>
Run Code Online (Sandbox Code Playgroud)
该{{#each ...}}助手与游标对象的工作,以对光标数据的变化做出反应.因此,在您的情况下,如果该数据来自服务器(例如订阅),则在Meteor.startup时,数据可能尚未加载.所以最初你的清单是空的.然后,当数据从线上item传出时,将为每个数据项呈现新模板.如果要使特定项可拖动,可以将该jQuery代码放入Template.item.rendered回调中.
这有帮助吗?