在ng-model上键入特定字符串时触发事件

时间:2015-11-12 20:05:53

标签: angularjs angularjs-ng-model

假设用户输入输入或div满足时更新ng-model,如果我们想在每次用户输入某些字符串时触发事件,例如'我正在写某些东西'然后用户输入“某事“我想举办一场活动。

在不使用手表的情况下,哪种方法可以解决这个问题?

2 个答案:

答案 0 :(得分:2)

按照评论中的说法,您可以执行以下操作:



var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.error = false;
  $scope.changed = function(input) {
    $scope.error = input == 'foo' ? true : false;
  }

}

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  <p>Don't type 'foo'</p>
  <input type="text" ng-change="changed(input)" ng-model="input" />
  <div ng-show="error">Gezz, you shouldn't</div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这是一个基本概要。正则表达式只检查几个月,因此您必须将它们全部添加。对于像这样的输入字段:

    <input type="text" id="dateval" ng-model="typeddate">

在您的控制器中执行以下操作:

    $scope.typeddate = "";

    $watch('typeddate',function(newVal,oldVal) {
        var re = /jan|feb|mar|apr/i ;
        var res = newVal.match(re);
        if(res != null) {
             // you have a match so do what you need to do
        }
    });