我正在尝试为自己的目的创建自动完成元素。基本上,我的指令创建了一个输入,我键入我的搜索和一个将存储我的服务器值的数据列表。
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存储到范围变量中。我怎么能这样做?
非常感谢!!!
答案 0 :(得分:0)
您可以在datalist中添加除option之外的一些文本,您不能在datalist中添加选择更改类型事件。
您可以在datalist上绑定“input”事件,在每个输入上,您可以使用列表值检查输入值。这样您就可以输入您输入的商品ID,商品价值等。