从datalist元素中获取选定的值

时间:2014-02-13 12:08:34

标签: angularjs autocomplete angularjs-directive

我正在尝试为自己的目的创建自动完成元素。基本上,我的指令创建了一个输入,我键入我的搜索和一个将存储我的服务器值的数据列表。

template: function (elem, attrs) {
    return '<input id="x" type="text" list="listing" /><datalist id="listing">' +
    '<option ng-repeat="item in resultFromServer"' +
    'label="myLabelValue" value="myTextValue" data-id="myIdValue" /></datalist>';
},
transclude: true,
link: function (scope, elem, attrs) {
    elem.children(0).bind('keyup', function () {
        var val = elem.children(0).val();
        var min = scope.$eval(attrs.minLength);

        if (val.length >= min) {
            doGetAsync(attrs.action, { searchFor: val }, function (result) {
                scope[resultFromServer] = result.Data;
                scope.$apply();
            });
        }
    });
}

研究工作正常。

问题是:当我从该数据列表中选择<option>时如何触发事件?当我从<datalist>中选择任何值时,我想获取所选值并将id存储到范围变量中。我怎么能这样做?

非常感谢!!!

1 个答案:

答案 0 :(得分:0)

您可以在datalist中添加除option之外的一些文本,您不能在datalist中添加选择更改类型事件。

您可以在datalist上绑定“input”事件,在每个输入上,您可以使用列表值检查输入值。这样您就可以输入您输入的商品ID,商品价值等。