我尝试在呈现网页时向input
标记添加自动填充功能。
Template.friends.rendered = function () {
var users = Meteor.users.find({}).fetch();
// this gets all usernames from the local minimongo
var names = users.map(function (user) {
return user.username;
});
console.dir($("#addFriendSearch"));
$("#addFriendSearch").autocomplete({source: names});
alert();
};
console.dir
告诉我它无法找到#addFriendSearch
元素。要查看调用渲染函数的时间,我将警报放在函数的末尾。警报显示之前我的表单呈现。
我找到了另一种解决方案,它完美无缺,但由于rendered
应该正常工作,我不满足于此。
我的另一种解决方案是将Template.friends.rendered
重命名为Template.friends.methods
,并将其称为模板中的UI助手,如下所示:
<template name="friends">
...
{{methods}} <!-- last in the template -->
</template>
答案 0 :(得分:0)
如果#addFriendSearch被帮助程序包装(即{{#if}}或类似的东西) - 这样你应该等待Template.friends上的第一次计算完成。试试这个:
Template.friends.rendered = function () {
Meteor.defer(function () {
$("#addFriendSearch").autocomplete({source: names});
});
};