javascript typeahead:获取选定的值

时间:2017-05-30 13:56:32

标签: javascript angularjs typeahead

我正在尝试使用typeahead.js在Angular2 app中实现typeahead。

<input id="city" type="text" placeholder="Choose City" />

typeahead.d.ts

declare function initTypeahead(data:any,id:any);
export = initTypeahead;

typeahead.js

if ('undefined' !== typeof module) {

module.exports = function initTypeahead(data, element) {

    var _values = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        local: data
    });

    _values.initialize();

    var elt = $(element);


    elt.typeahead({
        hint: true,
        highlight: true,
        minLength: 1,

    }, {
            // itemValue: 'code',
            // itemText: 'value',
            name: '_values',
            displayKey: 'value',
            source: _values.ttAdapter(),

        }
    );

    elt.on('typeahead:selected', function (e, datum) {
        console.log(datum.code);
        elt.val(datum.code);
        console.log(elt.val())
    });

}

}

然后在 component.ts 中,如下调用typeahead函数,

initTypeahead(data, '#city');

示例数据

[{code: "AUH", value: "Abu Dhabi"}, {code: "ADL", value: "Adelaide"},…]

Typeahead工作得很好。我尝试在单击按钮时获取输入字段(城市)的选定值,如下所示 component.ts 文件。

$('#city').val();

如果我选择阿布扎比,它会将阿布扎比作为输入字段的选定值,但我需要获取代码( AUH )作为选定的值。

我该怎么做?任何建议都非常感谢。

谢谢

0 个答案:

没有答案