javascript - AngularJS - 模糊延迟

标签 javascript angularjs

我有以下内容:

<div class="staff">

    <input ng-model="user" 
            ng-focus="isFocused = true;"
            ng-blur="isFocused = false;/>

    <div class="matches" ng-if="isFocused">
        <div class="user" 
            ng-repeat="match in users | filter:user" 
            ng-bind="match"
            ng-click="user = match">
        </div>
    </div>

</div> 

根据我的指令 .staff 。基本上,我们有一个输入字段。当您开始输入时,它会显示匹配项。然后我想单击一个匹配项,它应该更新 ng-model='user'

现在这不起作用,因为 ng-focus快速隐藏.matches (也就是说,当您想单击 .match 时,您已经模糊了输入,因此 isFocused 变为 false )。

我目前的解决方案是依赖指令 element.bind()对于对焦和模糊,基本上都是延迟 Action 。

因此,在我当前的实现中,input标签很简单 <input ng-model="user"/>我的指令是 link

link: function(scope, element, attrs)
{
    element.bind('focus', function()
    {
        scope.isFocused = true;
    });

    element.bind('blur', function()
    {
        $timeout(function() 
        {
            scope.isFocused = false;
        }, 125);
    });
}

我真的更喜欢第一个选项。有什么我可以做的吗?

最佳答案

<div class="staff">
    <input ng-model="user" 
            ng-focus="isFocused = true;"
            ng-blur="focusOut()"/>

    <div class="matches" ng-if="isFocused">
        <div class="user" 
            ng-repeat="match in users | filter:user" 
            ng-bind="match"
            ng-click="user = match">
        </div>
    </div>
</div> 

link: function(scope, element, attrs){
    scope.focusOut = function(){
        $timeout(function(){
            scope.isFocused = false;
        }, 125);
    });
}

关于javascript - AngularJS - 模糊延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901903/

相关文章:

javascript - ng-click 上的设置和属性不执行任何操作

javascript - jquery向一个元素添加多个css类

javascript - 我的 jQuery 和 twilio 代码有什么问题?

javascript - IE8 中的 Google API 组合图表字体问题

javascript - Angular 邮政服务

javascript - 在 Angularjs 中对基于 Promise 的代码进行单元测试

php - Internet Explorer 中的 JavaScript DOM 错误

javascript - 如何根据一些数据动态添加 Font Awesome 图标

javascript - 要求未定义? Todd Motto Angular 1.5 入门教程

angularjs - Mocha 测试,Angular 应用程序获取 'undefined' 不是函数(评估 '$browser.state()')