AngularJS不断观察文本输入

时间:2015-03-05 09:44:51

标签: javascript angularjs input textwatcher

我想知道是否可以持续观看文本输入,比如输入一个字符串然后运行一个函数。

我会将它用于html游戏,如果你喜欢在一个随机的时刻输入单词,你就可以暂停游戏。

这可能吗?或者有简单的示例脚本吗?那会对我有所帮助! 谢谢!

2 个答案:

答案 0 :(得分:0)

假设您输入的内容为ng-model="myTextParam"。您可以在控制器中写入以下内容:

$scope.$watch(function() { return $scope.myTextParam; }, function (newVal, oldVal) {
    if (newVal === "string test") {
       //do whatever
    }
});

Fiddle

答案 1 :(得分:0)

每次范围变量更改时,您都可以使用$ scope。$ watch()来运行特定的函数。然后,您可以检查您的字符串是否等于“暂停”。

$scope.$watch('typeModel', function(newVal, oldVal){
    if(newVal.toLowerCase() === 'pause'){
        alert('Pause!');
    }
});  

小提琴:http://jsfiddle.net/U3pVM/13834/

<强>更新 您可以使用技巧隐藏输入,并确保它不会失去焦点。

此css可确保您的html正文占用所有可用空间:

html,body {
    width: 100%;
    height: 100%;
}

您可以在身体上注册一个点击处理程序,以确保您始终关注输入:

document.body.onclick = function(event){        
    document.getElementById('input_field').focus();
}

autofocus部分确保输入字段专注于页面加载:

<input id="input_field" type="text" ng-model="typeModel" autofocus>

你可以做一些css技巧来隐藏你的输入(这里不是最好的例子,但仅用于演示目的):

input {
    opacity: 0.01;
}

更新了小提琴:http://jsfiddle.net/U3pVM/13847/