我正在尝试收听表单上的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函数被调用并且工作正常...但是现在我的模型不再绑定到输入表单字段...如果我更改模型表单不更新
答案 0 :(得分:1)
问题是你正在创建一个新的“隔离”范围,它与redrawUI()
所在的范围分离。请查看this fiddle,了解从父作用域继承并使用scope.$eval
处理事件的替代方法。