Awa*_*ing 23 angularjs angular-ui-bootstrap
我正在使用angular-ui typeahead.如何在焦点输入框时触发弹出项目,而不是在键入后触发弹出项目.
我可以证明与扩展typeahead的UX相关的问题.虽然@ ueq的解决方案有效,但它无法释放焦点/点击.我建议改变一些事情,特别是如何触发开放式用户体验.
使用预先输入时,人们对UX有一定的期望.点击一个输入并弹出一些东西可能会有点刺耳和误导.单击或制表符焦点到输入传统上除了准备键盘交互的输入之外什么都不做.双击一般表示会发生更多事情(例如双击文件并从选择对话框中关闭而不是单击以选择,然后单击"确定"关闭).
在编程中,我们经常尝试将关注范式分离到我们的代码中.但我认为这也可以应用于这个特定的UX和UX.让单击和选项卡聚焦做他们多年来所做的事情,并利用双击来扩展先行者的用户体验.
plunker - http://plnkr.co/edit/GGl6X4klzVLKLX62Itbh?p=preview
.directive('typeaheadClickOpen', function($parse, $timeout) {
return {
restrict: 'A',
require: 'ngModel',
link: function($scope, elem, attrs) {
triggerFunc = function(evt) {
var ctrl = elem.controller('ngModel'),
prev = ctrl.$modelValue || '';
if (prev) {
ctrl.$setViewValue('');
$timeout(function() {
ctrl.$setViewValue(prev);
});
} else {
ctrl.$setViewValue(' ');
}
}
elem.bind('dblclick', triggerFunc);
}
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10675 次 |
| 最近记录: |