Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
努力使用sergeyt:typeahead和DiscoveryMeteor的代码模式_Meteor_Typeahead.js - Fatal编程技术网

努力使用sergeyt:typeahead和DiscoveryMeteor的代码模式

努力使用sergeyt:typeahead和DiscoveryMeteor的代码模式,meteor,typeahead.js,Meteor,Typeahead.js,我希望使用Typeahead作为Meteor项目的一部分,使用组织推荐的代码。Atmosphere有一个包,这个包看起来应该可以工作 我想使用typeahead在中启用input#wbsSearch,但似乎无法确定如何使其工作。最初我把逻辑放在client/views/application/layout.js中,但它告诉我我的收藏的全局名称,Wbs,还没有定义……我仍然不明白 移动代码解决了Wbs全局集合可用的问题,尽管我不知道为什么。尽管如此,尽管输入字段没有typeahead行为,所以我仍

我希望使用Typeahead作为Meteor项目的一部分,使用组织推荐的代码。Atmosphere有一个包,这个包看起来应该可以工作

我想使用typeahead在中启用
input#wbsSearch
,但似乎无法确定如何使其工作。最初我把逻辑放在
client/views/application/layout.js
中,但它告诉我我的收藏的全局名称,
Wbs
,还没有定义……我仍然不明白

移动代码解决了Wbs全局集合可用的问题,尽管我不知道为什么。尽管如此,尽管输入字段没有typeahead行为,所以我仍然很困惑


对此有任何见解都将不胜感激。一旦超过这一点,这个小应用程序中其余的CRUD功能将相对简单,但这让我陷入了某种僵局。

client/views/application
中未定义Wbs,但在
client/main.js
中未定义Wbs的可能原因是首先加载嵌套文件,而main.*文件是最后加载的(请参阅关于加载顺序的文档)。解决加载顺序和typeahead未初始化问题的方法是将其包装到渲染函数中,例如:

Template.layout.rendered = function () {
  Meteor.typeahead('input#wbsSearch', function () {
    // create list of abbreviations
    var wbsList = Wbs.find({modifier: false}).fetch().map(function (wbsItem) {
        return wbsItem.abbrev;
    });
    // return the sorted list
    return wbsList.sort();
  });
};

这样做应该确保DOM已经准备好被typeahead“感染”(即使在嵌套文件中,
client/views/application/layout.js
)。希望这有帮助

这是杰出的。它完全可以工作,也感谢您对从内到外加载文件的解释。虽然知道main.*最后加载,但我不知道由内而外的分层加载行为。现在,我需要仔细阅读Meteor.layout.rendered正在做什么,但我可以做到。非常感谢你帮我克服了这个障碍。这件事我已经坚持了好几天了。