1

我正在尝试收听表单字段上的 keydown 事件。为此,我构建了一个带有“keydown”属性的指令,如下所示:

var keydown = function() {
    return {
        restrict: 'A',
        scope: {
            keydown: '=keydown'
        },
        link: function(scope, elem, attr) {
            $(elem).keydown(function(evt){
                scope.keydown(evt);
            });
        }
    };
};

现在我将它添加到我的输入标记中:

<input class="search-input" type="text" ng-model="queryStr" ng-change="redrawUI()" keydown="processSearchBox" >

现在我的keydown函数被调用并且工作正常......但是现在我的模型不再绑定到输入表单字段......如果我更改模型,表单不会更新

4

1 回答 1

1

问题是您正在创建一个新的“隔离”范围,该范围与所在的范围分离redrawUI()。看一下这个 fiddle以了解另一种方法,您可以从父范围继承并使用它scope.$eval来处理您的事件。

于 2013-07-16T01:34:15.360 回答