0

我正在尝试将 typeahead.js 与 Meteor 0.6.5.1 一起使用,但无法使其始终如一地工作。finalItems仅在热代码刷新后(有时充其量)在渲染时填充,但在浏览器中重新加载页面后显示为空。正确加载的时间finalItems,typeahead.js 正常工作。

HTML

<template name="addProduct">

    <div class="form-group">
        <label for="styleName">Style Name</label>
        <input type="text" id="ta" name="styleName" class="form-control">
    </div>

</template>

Javascript

Template.addProduct.rendered = function() {
    items = [];
    finalItems = [];

    styles = function() {
        prods = Products.find({}, {
            fields: {
                styleName: 1
            }
        });
        prods.forEach(function(item) {
            items.push(item.styleName);
        });

        finalItems = _.uniq(items);

        console.log(finalItems);

    };

    styles();

    $('#ta').typeahead({
        name: ['styles'],
        local: finalItems
    });

};
4

2 回答 2

4

如果您正在使用一般的自由文本自动完成功能,您可能想查看我的流星自动完成包,几天前首次发布:

https://github.com/mizzao/meteor-autocomplete

你也可以从那里得到一些关于你想做的事情的灵感。我强烈建议使用 Meteor 集合支持的实现,而不是尝试使用现有的异步库来拼凑一些东西,这就是我在这里所做的。

使用 自动完成用户@,其中在线用户显示为绿色:

在此处输入图像描述

在同一行中,使用元数据和引导图标自动完成其他内容:

在此处输入图像描述

请分叉、拉动和改进!

于 2013-09-24T13:41:34.387 回答
1

与此同时,有一个 mrt-package 可以完成这项工作:

于 2014-02-24T00:39:12.120 回答