小编rdi*_*ert的帖子

如何从Meteor集合中制作反应阵列?

我想从集合中获取项目名称列表作为一个简单的数组,用于自动完成用户输入和检查重复项.我希望此列表具有反应性,以便数据中的更改将反映在数组中.我根据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

9
推荐指数
2
解决办法
7205
查看次数

标签 统计

meteor ×1