如何在输入空格时触发ng-change?

Tim*_*ers 25 javascript angularjs

我有一个函数,当textarea的值改变时调用.它工作得很好,除非按下空格键,然后没有任何东西被调用.有没有办法激活这个?从技术上讲,内容正在发生变化,我希望无论如何都要调用该函数.

我附上了代码的小提琴.您可以看到,$scope.log当按下空格键时,数组不会推送新元素(也可以输入键),但它可以与任何其他不是空格的键一起使用.

示例小提琴:http://jsfiddle.net/UJWLN/4/

odi*_*seo 40

您可以在输入中使用指令ng-trim并将其设置为false,如下所示:

<textarea ng-change="changeFunction()" ng-model="myModel" ng-trim="false"></textarea>
Run Code Online (Sandbox Code Playgroud)

但这不适用于所有情况.如果您希望在每次击键时执行某些操作,请尝试使用自定义指令.我为你写了一篇:

http://jsfiddle.net/UJWLN/6/

myApp.directive('ngKeystroke', function(){
    return {
        restrict: 'A',
        link: function(scope, elem, attrs){
            elem.bind("keyup", function(){
                scope.log.push('called');
                scope.$digest(); 
            });
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

  • 在哪种情况下`ng-trim`不起作用? (5认同)

Rub*_*ini 7

为了触发ng-change空格上的事件,我也用过ng-trim.它工作正常.

<textarea ng-model="myCtrl.content" name="content" ng-trim="false" rows="5" cols="15" maxlength="250"></textarea>
Run Code Online (Sandbox Code Playgroud)