ちょうどAngularJSの学習を始めました。私が書いたテストプログラムでは、自分の入力フィールドが空であるかコントローラ(スクリプト)の中にないかをチェックする必要があります。続きコントローラで入力フィールドが空であるかどうかをチェックする - AngularJS
は、私がここで
<div ng-controller="ExampleController">
<input type="text" ng-model="userFirstName" required/><br>
<p ng-bind="msg"></p>
</div>
<script>
var mainApp = angular.module("mainApp", []);
mainApp.controller('ExampleController', function ($scope) {
if($scope.userFirstName.length === 0){
$scope.msg = "pls enter something";
}else{
$scope.msg = "Something Entered";
}
});
</script>
を書いたコードであり、出力として、私はpls enter something
を見て期待していました。しかし私は何も見ることができません。
しかし、小さな変更を加えてスクリプトをフォローすると、期待通りにSomething Entered
と表示されます。
<script>
var mainApp = angular.module("mainApp", []);
mainApp.controller('ExampleController', function ($scope) {
$scope.userFirstName = 'Something';
if($scope.userFirstName.length === 0){
$scope.msg = "pls enter something";
}else{
$scope.msg = "Something Entered";
}
});
</script>
ここで何が間違っていますか?私が理解する限り、第2のものが期待どおりに機能するなら、第1のものは動作するはずです。それ以外の場合は、両方とも機能しません。
私は非常に基本的な何かを理解していないと思う。もしそうなら、私が何を読んでいないかを教えてください。
ありがとうございました!
は「何かが入力されました」のみ有効です。テキストボックスがクリアされると、期待どおりに動作しません。 – vigamage
@vigamage私の回答が更新されました。未定義またはnullチェックが必要になると思います。種類に関しては –
はい、そうです。長さのチェックは必要ないと思います。 – vigamage