2016-09-23 17 views
0

私のコントローラ

App.controller('Ctrl', ['$scope', function ($scope) { 
    $scope.user = {}; 
    $scope.view = function() { 
       console.log($scope.user); 
       console.log($scope.user.length); 
    }]); 

マイHTML

<input type="text" ng-model="user.lastname" /> 
<input type="email" ng-model="user.email" /> 
<input type="text" ng-model="user.address" /> 
<input type="email" ng-model="user.id" /> 
<input type="text" ng-model="user.city" /> 
<input type="email" ng-model="user.country" /> ---> This will be a select 

ないフィールドは必須です言う、私は、ユーザー入力に基づいて検索機能をしなければなりません。ユーザーが少なくとも1つのデータを提供する必要があることを1つだけ検証する必要があります。上記のようにコンソールを置くと、最初の値が表示されますが、.lengthコンソールはundefinedを返します。

enter image description here

答えて

1

オブジェクトにはlengthプロパティがありません。 使用Object.keys長代わり

Object.keys($scope.user).length; 
0

あなたが最初ng-init関数を呼び出すことによって、あなたのモデルに初期値を代入する必要があります。この関数では、最初にすべてのモデルの初期値を設定します。これ以外の場合は、この未定義のエラーが発生します。

0

オブジェクトに長さを取得しようとしています。オブジェクトの長さプロパティはありません。ただし、Object.key()を使用してオブジェクトの長さを取得できます。詳細はこちらをご覧ください。

get-js-object-length

0

あなたの入力タイプは"email"です。

有効なメールが届くまで値はnot be assignedになります。

電子メールフィールドの場合のみタイプ電子メールを作成し、残りはテキストとします。

長さを取得するには、次の

Object.keys($scope.user).length; 
0

$scope.userをobject.Objectsがpropertly長さを持っていないです。

オブジェクトのプロパティの数を取得する場合は、Object.keys(object).length関数を使用してオブジェクトのプロパティの長さを取得する必要があります。

0

ここでは、達成しようとしているものの作業fiddleがあります。

また、オブジェクトの.lengthを直接呼び出すことはできません。 にオブジェクト内のプロパティの数を取得する場合は、これを試してください。SO Question

関連する問題