我想从集合中获取项目名称列表作为一个简单的数组,用于自动完成用户输入和检查重复项.我希望此列表具有反应性,以便数据中的更改将反映在数组中.我根据Meteor文档尝试了以下内容:
setReactiveArray = (objName, Collection, field) ->
update = ->
context = new Meteor.deps.Context()
context.on_invalidate update
context.run ->
list = Collection.find({},{field: 1}).fetch()
myapp[objName] = _(list).pluck field
update()
Meteor.startup ->
if not app.items?
setReactiveArray('items', Items, 'name')
#set autocomplete using the array
Template.myForm.set_typeahead = ->
Meteor.defer ->
$('[name="item"]').typeahead {source: app.items}
Run Code Online (Sandbox Code Playgroud)
这段代码似乎有效,但它会导致我的应用程序的加载时间(在dev/localhost上加载需要5-10秒,而没有此代码需要大约1秒).难道我做错了什么?有没有更好的方法来实现这一目标?
meteor ×1