2017-07-01 1 views
-2

Ich versuche, die Länge der Zeichenfolge zu überprüfen, aber es funktioniert nicht, kann mir bitte jemand helfen, zu finden, was ich falsch mache?Länge der Zeichenfolge in eckigen js

HTML ist

<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> 

und JS ist

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

Definieren Sie "funktioniert nicht". Woher kommt der $ scope.user? Wie kannst du die Länge von etwas erreichen, das du nirgends definiert hast? –

+0

Ich habe das versucht, aber es funktioniert nicht – sonia

+0

Überprüfen Sie meine Antwort jetzt funktioniert es genau so, wie Sie es erwarten. Da Sie den HTML-Code nicht hinzugefügt haben, missverstanden Sie $ scope, den Benutzer als Variable, stattdessen ist es ein JSON-Objekt. –

Antwort

0

Sie haben nicht $scope.user in Ihrem Controller deklariert und den Aufruf der Funktion check(). Dadurch wird Ihnen

TypeError: Cannot read property 'length' of undefined

So müssen Sie die $scope.user als

$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> 

So Ihr Controller

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(); 
}) 
wie dieses wird erklären

Für Ihre Einfachheit und Arbeit hier ist der Link zu JSFIDDLE

+0

es funktioniert nicht, ich kann nichts in den Text jetzt setzen – sonia

+0

Was meinst du? Veröffentlichen Sie Ihren HTML-Code. –

+0

First Name:

form = {{user}}

sonia