2017-09-29 2 views
-3

でfalseを返します。値は常に私がAngularJSを使用してこの方法を持っているJavaScriptの

app.controller("HomeController", function($scope, $http) { 
    $scope.btnText = "Login"; 
    $scope.login = function() { 
     $scope.btnText = "Please wait..."; 
     $http({ 
      method: 'post', 
      url: '/Home/UserLogin', 
      data: $scope.user 
     }).then(function (d) { 
      debugger; 
      $scope.btnText = 'Login'; 
      if (d == "1") { 
       window.location.href = '/Home/Dashboard'; 
      } else { 
       alert(d.toString()); 
      } 
      $scope.user = null; 
     }); 
    } 
}); 

私はこの結果を得る:

d = {data: "1", status: 200, config: {…}, statusText: "OK", headers: ƒ} 

これは、D = 1。なぜそれが私ということであることを意味し私の比較ステートメントでは常にfalseになる?私は試しました: d === 1; d == '1'; d.toString()== "1"; d.toString()== '1';それでも、私は間違っている。

+2

d.data == "1"ではありませんか? – H77

+0

「d = {data: "1"、...} 'ということを指摘した後、なぜ* d = 1 *であると主張するのかは、私には謎です。それはちょうど明らかに間違っています。どのようにしてオブジェクトが定数「1」と等しくなるか、あるいはそのプロパティの値と等しいか?私はこの質問を閉じることをお勧めします。他の現在または将来のスタックオーバーフローの読者にとって興味深いことはないでしょう。ちなみに、AngularJSに関連していない場合は、「リビングルーム」という質問にタグ付けしないでください。 –

答えて

1

この(d.data === "1")

if (d.data === "1") { 
    window.location.href = '/Home/Dashboard'; 
} else { 
    alert(d.data.toString()); 
} 
+0

11分後にこれをマークします。 – Ibanez1700

1

dはキーdataを持って全体の応答であるようにしてください。したがって、d.dataを実行すると、dataという値が得られます。また、トリプル=の使用に注意してください。

あなたのケースでは、==オペレータは、必要な型変換を行った後で同等かどうかを比較します。 ===演算子は変換を行いません。したがって、2つの値が同じタイプでない場合は、===は単にfalseを返します。

if (d.data === "1") { // Rest of the code} 
+0

以下同じ回答 – Sajeetharan

+0

@Sajeetharan私たちはお互いにほとんど何も答えなかった – brk

関連する問題