2017-07-01 14 views
-2

文字列の長さをチェックしようとしていますが、機能していないので、間違っているものを見つけるのを手伝ってください。角度jsの文字列の長さ

HTMLは

<div ng-app="myApp" ng-controller="formCtrl"> 
<form novalidate> First Name:<br> <input type="text" ng-model="user.firstName"><br> 
<button ng-click="check()">RESET</button> 
</form> <p>form = {{user}}</p> </div> 

され、JSは、あなたがあなたのコントローラで$scope.userを宣言し、check()関数を呼び出していない

var app = angular.module('myApp', []); 
app.controller('formCtrl', function($scope) { 

    $scope.check = function() { 
     var arr = $scope.user; 
     if (arr.length<=3){ 
      $scope.user="enjoy" 
     } 

    }; 
    $scope.check(); 
}); 
+0

へのリンクは「動作していません」と定義されています。 $ scope.userはどこから来たのですか?どこにも定義されていないものの長さをどうやって得ることができますか? –

+0

私はそれを試みましたが、それは動作していません – sonia

+0

今私の答えを確認してください、それはあなたが期待どおりに正確に動作しています。 HTMLを追加しなかったので、$ scopeと誤解されました。代わりに、変数はJSONオブジェクトです。 –

答えて

0

です。これを行うと、あなたの

TypeError: Cannot read property 'length' of undefined

を与えるだから、$scope.user

$scope.user= { 
    firstName : '' 
}; 

としてHTML

<div ng-app="myApp" ng-controller="formCtrl"> 
<form novalidate> First Name:<br> <input type="text" ng-model="user.firstName"><br> 
<button ng-click="check()">RESET</button> 
</form> <p>form = {{user}}</p> </div> 

は、だからあなたのコントローラがこの

angular.module('myApp',[]).controller('formCtrl', function($scope){ 
    $scope.user= { 
    firstName : '' 
    }; 

    $scope.check = function() { 
    var arr = $scope.user.firstName; 
    if (arr.length<=3){ 
     $scope.user.firstName="enjoy" 
    } 

    }; 
    $scope.check(); 
}) 
のようになって宣言する必要があります

簡略化のために、JSFIDDLE

+0

それは働かない、私は今テキストに何かを置くことができない – sonia

+0

あなたはどういう意味ですか?あなたのHTMLを投稿してください。 –

+0

First Name:

form = {{user}}

sonia