Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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

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
Node.js meteor typeahead:列表和选择_Node.js_Meteor - Fatal编程技术网

Node.js meteor typeahead:列表和选择

Node.js meteor typeahead:列表和选择,node.js,meteor,Node.js,Meteor,我已经通过npm安装了meteor typeahead。 我还安装了 meteor add sergeyt:typeahead 从 我试图让数据源属性示例发挥作用,以便在用户开始键入时显示国家列表。我已将所有国家/地区插入收藏: Country = new Meteor.Collection('country'); 该集合已发布并订阅 在输入字段中键入时,不会显示任何建议。这与激活API有关吗?如果是这样,我该怎么做?请参考网站 我的表单如下所示: <template name="cr

我已经通过npm安装了meteor typeahead。 我还安装了

meteor add sergeyt:typeahead

我试图让数据源属性示例发挥作用,以便在用户开始键入时显示国家列表。我已将所有国家/地区插入收藏:

Country = new Meteor.Collection('country');
该集合已发布并订阅

在输入字段中键入时,不会显示任何建议。这与激活API有关吗?如果是这样,我该怎么做?请参考网站

我的表单如下所示:

<template name="createpost">
<form class="form-horizontal" role="form" id="createpost">
        <input class="form-control typeahead" name="country" type="text" placeholder="Country" autocomplete="off" spellcheck="off" data-source="country"/>
        <input  type="submit" value="post">
</form>
</template>

为了使您的输入提前完成,您需要:

  • 使用包API激活typeahead jQuery插件

    • 模板呈现事件处理程序中的Meteor.typeahead调用
    • Meteor.typeahead.inject调用为页面上可用的CSS选择器匹配的元素激活typeahead插件(请参阅)
  • 在模板中编写“数据源”函数,可通过typeahead插件理解。看起来您的“数据源”功能是正确的

  • 为应用程序中的提前输入/下拉列表添加CSS样式。请参阅演示应用程序中的示例


  • 在模板中尝试以下方法:

        <input type="text" name="country" data-source="country"
        data-template="country" data-value-key="name" data-select="selected">
    


    谢谢Sergeyt,我将完成您提到的步骤;密码?对不起,我很困惑。我该如何称呼它?在DOM就绪事件中调用它,即使用Meteor.startup(演示应用程序有一个)。或者在模板呈现的事件处理程序中调用它。如何定义选择器?我把Meteor.typeahead.inject(选择器)放在前面;进入服务器启动。我收到以下消息,ReferenceError:selector未定义。如果您在github上创建一个文件,并使用专门针对该函数的代码,这会不会太过分?这可能使我更容易查看代码并了解发生了什么。@CodeCandy Meteor.typeahead.inject应该在客户端内部调用,因为Meteor.typeahead包只在浏览器环境中工作。
        <input type="text" name="country" data-source="country"
        data-template="country" data-value-key="name" data-select="selected">
    
    <template name="country">
        <p>{{name}}</p>
    </template>
    
    Template.createpost.rendered = function() {
        Meteor.typeahead.inject();
    }
    
    Template.createpost.helpers({
        country: function() {
        return Country.find().fetch().map(function(it){
                return {name: it.name};
            });
        },
        selected: function(event, suggestion, datasetName) {
            console.log(suggestion); //or anything what you want after selection
        }
    })