我想知道是否可以持续观看文本输入,比如输入一个字符串然后运行一个函数。
我会将它用于html游戏,如果你喜欢在一个随机的时刻输入单词,你就可以暂停游戏。
这可能吗?或者有简单的示例脚本吗?那会对我有所帮助! 谢谢!
答案 0 :(得分:0)
假设您输入的内容为ng-model="myTextParam"
。您可以在控制器中写入以下内容:
$scope.$watch(function() { return $scope.myTextParam; }, function (newVal, oldVal) {
if (newVal === "string test") {
//do whatever
}
});
答案 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;
}