Meteor-加载的{if currentUser}}内容上的事件
我有一个模板Meteor-加载的{if currentUser}}内容上的事件,meteor,meteor-blaze,meteor-accounts,meteor-useraccounts,Meteor,Meteor Blaze,Meteor Accounts,Meteor Useraccounts,我有一个模板 {{#if currentUser}} <input id="datetimepicker" type="text" > {{/if}} 但在模板的方法中: 再次创建 OnRender {{{#if currentUser}}的内容不可访问,因为在模板之后加载了带有user的集合。我可以使用setTimeout,但这是一个不稳定的解决方案。我可以输入模板 {{#if currentUser}} <input id="datetimepicke
{{#if currentUser}}
<input id="datetimepicker" type="text" >
{{/if}}
但在模板的方法中:
- 再次创建
- OnRender
{{{#if currentUser}}
的内容不可访问,因为在模板之后加载了带有user的集合。我可以使用setTimeout
,但这是一个不稳定的解决方案。我可以输入模板
{{#if currentUser}}
<input id="datetimepicker" type="text" >
<script>
$('#datetimepicker').datetimepicker();
</script>
{{/if}}
{{{#if currentUser}
$(“#datetimepicker”).datetimepicker();
{{/if}
但这并不优雅
如何以正确的方式捕获块
{{if currentUser}
中内容的呈现?或者我不应该一般地使用这种语法,还有其他方式检查是否加载了用户。如果是,请链接到适当的教程 方法是将if
的内容制作成另一个模板,然后使用该模板的onRendered
或onCreated
方法
{{{#if currentUser}
{{>datePicker}
{{/if}
...
JS:
Template.datePicker.onCreated(()=>{
//某物
});
@Christian Fritz的答案很有效
如果由于某些其他问题而不想创建新模板,也可以在onRendered
回调中尝试此操作:
Tracker.autorun(function() {
if ($('#datetimepicker')[0]) {
$('#datetimepicker').datetimepicker();
}
});
Tracker.autorun(function() {
if ($('#datetimepicker')[0]) {
$('#datetimepicker').datetimepicker();
}
});