[英]AngularJS constantly watch on text input
我想知道是否可以持續觀看文本輸入,比如鍵入一個字符串然后運行一個函數。
我會將它用於html游戲,如果你喜歡在隨機的時刻鍵入單詞pause,你就可以暫停游戲。
這有可能嗎? 或者有簡單的示例腳本嗎? 那會對我有所幫助! 謝謝!
假設您輸入了一個ng-model="myTextParam"
。 您可以在控制器中寫入以下內容:
$scope.$watch(function() { return $scope.myTextParam; }, function (newVal, oldVal) {
if (newVal === "string test") {
//do whatever
}
});
每次范圍變量更改時,您都可以使用$ 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%;
}
您可以在正文上注冊一個clickhandler,以確保您始終關注輸入:
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/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.