2016-12-17 10 views
0

こんにちは私は2つの値を比較しているところでこのコードを実行しようとしていますが、比較が機能していないようです。Angular Js-なぜ条件が実行されていないのですか?

$scope.subcategory_idが値 1を持っていますが、それが動作しないよう
for (var i = 0; i <= $scope.subcats.length - 1; i++) 
      { 
       console.log($scope.subcategory_id); 
       if ($scope.subcats[i].id === $scope.subcategory_id) 
       { 
        console.log($scope.subcats[i].name); 
        $scope.subcat_selected_name = $scope.subcats[i].name; 
        alert($scope.subcat_selected_name); 
       } 
      } 

。しかし、もし私がこのようなものを書いたらif ($scope.subcats[i].id ===1)それは動く。

+0

私は$(scopechcats [i] .id == $ scope.subcategory_id)doubleがトリプルではないことを解決しました –

+0

'$ scope.subcategory_id'は*文字列*で、もうひとつは*であると思います*ので、 '==='は動作しません... – kukkuz

答えて

0

トリプルイコールを使用することが最も推奨されます。この値に加えて、トリプルイコールは演算子のタイプもチェックします。たぶん、$ scope.subcategory_idの型と$ scope.subcats配列の要素が同じではないかもしれません。

できればタイプを同じにしてください。あなたがそれを行うことができない場合、そして型について何らのリスクも見られない場合は、引き続きdouble equalsを使用することができます。

+0

$ scope.subcategory_idはオブジェクトです。$ scope.subcatsは配列です –

+0

私は言った: "$ scope.subcats配列の要素"。 $ scope.subcategory_idの型と配列の要素は、三重等価を使用するためには同じである必要があります。 – salix

関連する問題