2017-06-12 12 views
-1

コンテンツタイプを確認するにはどうすればよいですか?たとえば、私は規則の文字列を持っています。これは、入力変数が"string data"ではなく、0または"0"であることを意味します。整数/文字列/ブール値のvaraibleの内容をチェックする方法は?

ように私はこれを実行しようとしました:それは常にfalse

を返し

var status = false; 

        switch (node.value_type){ 

         case "integer": 
          status = angular.isNumber(node.value); 
          break; 
        } 

私はこのディレクティブを試してみました:

.directive('checkValueType', function() { 
       return { 
        restrict: 'A', 
        link: function (scope, element, attrs) { 

         var status = false; 

         var type_value = attrs.typeValue; 

         scope.$watch(attrs.ngModel, function (v) { 

          switch (type_value){ 

           case "integer": 
            status = angular.isNumber(v); 
            break; 

           case "string": 
            status = (typeof v === 'string'); 
            break; 

           case "object": 
            status = (typeof v === 'object'); 
            break; 

           case "array": 
           case "array_objects": 
            status = (v instanceof Array); 
            break; 

           case "boolean": 
            status = (typeof v === 'boolean'); 
            break; 

           case "float": 
            status = (Number(v) === n && n % 1 !== 0); 
            break; 

           case "vector2": 
            status = (v.length === 2); 
            break; 

           case "vector3": 
            status = (v.length === 3); 
            break; 
          } 

          console.log("Type of " + typeof v); 
          console.log("Type: " + type_value); 
          console.log(status); 

         }); 
        } 
       }; 
      }) 
+0

あなたは 'typeof'を使用することができます。例: 'typeof node.value' – echonax

答えて

0

使用#typeof

switch(typeof(node.value_type)){ 

    ... 
0

あなたは活字体で作業している場合はtypeOfを使用することができます。

var status = false; 
switch (typeof node){ 
    case "integer": 
     status = angular.isNumber(node.value); 
     break; 
} 
+0

常にfalseを返します:console.log(node.type_value); //整数 console.log(typeof node.value); //文字列 'switch(node.type_value){ 大文字小文字の「整数」: ステータス= angular.isNumber(node.value); 休憩。 } '私はシンボルを入力します:' 900' – Oleg

+0

私は2つの質問があります:このアルゴリズムの目的は、単にノードが整数かどうかをテストすることですか? 'node'の型は何ですか? –

+0

私は質問を更新しました。ノードはカスタムオブジェクトであり、DOMノードではありません – Oleg

関連する問題