簡體   English   中英

AngularJS不斷觀察文本輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM