2016-07-12 5 views
0

angle2プロジェクトの単純な数値検証を試みています。しかし、私は以下に書かれたJavaScriptコードを複製することができません。角度2のキー押しによる検証

Htmlの

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" /> 

JavaScriptの私はhtmlファイルをコンパイルすることができませんreturn isNumber(event)を実行しようとしましたangularJS2のための今

function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 

     if (charCode > 31 && (charCode != 46 && (charCode < 48 || charCode > 57))) { 
      return false; 
     } else { 
      return true; 
     } 
} 

。 Rx.jsエラーが発生します。もし私がreturnを取り除くと、それはコンパイルされますが、うまく動作しません。

私はAngularJS2の世界で何かを見逃していますか?

詳細が必要な場合は教えてください。

更新

私はangular2でそれをやっているこの方法です。ここではreturnキーワードを削除するとkeypressを得ることができますが、isNumberメソッドから返ってきたものは使用できません。

PS:私はこの特別な仕事をすべて行っています。Firefoxの入力タイプ番号は、フォーム投稿時の番号を確認しています。そして、AngularJS2は、ajax post afaikを与えるために、フォームポスト(完全なHTMLポスト)をバイパスしています。

答えて

1

要素に関数をバインドするとき、あなたがfootball operatorを持っている必要があります。

<input ... (keypress)="return isNumber()"/> 

問題が解決しない場合、私はあなたがキー操作で機能を返却する必要がある理由として興味津々...

+1

'onkeypress'はネイティブ属性ですが、angleでバインドすると' on'プレフィックスが失われます。 – rinukkusu

+0

そのリンクまたはドキュメントですか?私が角度で見る唯一のことは、「htmlのすべてのネイティブ要素を使用しましょう」と言っています。 –

+0

https://github.com/angular/angular/blob/ae75e3640a2d9eb1e897a0771d92b976c5a42c75/modules/%40angular/platform-b​​rowser/src/web_workers /ui/event_dispatcher.ts – rinukkusu

関連する問題