2016-10-21 2 views
1

サービスコールの応答に基づいてレコードが更新されるときに、いくつかのアラートを追加します。AngularJS:オブジェクトヌルをチェックしているときに間違ったメッセージを返す

応じて任意のデータがある場合は、私がチェックした場合:

if (response.data === null) 

がこの部分は尊重されていないようだと、レコードの更新の警告が示されます成功した、とあなたはスクリーンショットで見れば、 response.dataはnullです。

私は単純なifがうまくいかない理由、または私が応答Objectを間違って見ているのかどうか分かりません。

誰かがこれを行う方法に関するベストプラクティスを理解できるように手を貸してもらえますか?

ありがとうございます。あなたは「値null、文字列ではありません"nullを探す必要があり

更新されたイメージ

enter image description here

+0

(response.data === null)の場合は、 '必要'。現在、「ヌル」文字列をチェックしています。 – jjenzz

+0

hello jjenzz、更新されたスクリーンショットをご覧ください。 –

+1

あなたが書いたコードは、*データがないときに成功するように指示しています...本当に 'if(response.data!== null)'のように聞こえるでしょう。 – jjenzz

答えて

0

うまくいけば、これはあなたが(コード内のコメントを読んで)あなたが期待している結果を取得していない理由を説明するのに役立ちます:

function boooooom(msg) { 
    alert('We\'re sorry folks! ' + msg); 
} 

$http({ 
    method: 'PUT', 
    url: 'api/StorePage/PutStorePage?StorePageId=' + this.newpage.StorePageID, 
    data: storePage, 
}) 
    .then(
     // This callback will be called when the response is *available* 
     function(response) { 
      // Change this to `response.data` instead of `!response.data` 
      if (response.data) { 
       $scope.pages = response.data; 
       alert('Congrats!'); 
      } else { 
       boooooom('No data'); 
      } 
     }, 

     // This callback is called if an error occurs or if the server 
     // returns a response with an *error* status. 
     // 
     // *Your* request hasn't caused an error as it *has* responded 
     // and the response is a 200 status (which is not an error status) 
     // so this callback doesn't get called. 
     function(response) { 
      boooooom('Houston we have a problem'); 
     } 
    ) 
    // It looks like you always want to `clearFields` for both failure and success 
    // so you can just do that here, which will do that for you. 
    .finally(clearFields); 
1

。あなたのポストで

あなたはresponse.data === nullを使用しますが、スクリーンショットでは、あなたはresponse.data === 'null'を行っています文字列の値が'null'であるかどうかを確認していますが、スクリーンショットのif文を投稿のように編集してください)

次に行うべきことは、ブロック全体を中括弧で囲むことです。包みなさい、ブロック内のすべての必要なコード

if (response.data === null) { 
    $scope.pages = response.data; 
} 
alert("...."); 
clearFields(); 

は今、あなたのコードは同等です

if (response.data === null) { 
    $scope.pages = response.data; 
    alert("...."); 
    clearFields(); 
} 
+0

私はスクリーンショットを更新しました。私は別の試みをしていました、私はまたresponse.dataを試しました===未定義ですが、正しい道を行くことはありませんでした。 –

+0

見つけた別の問題が更新されました。うまくいけば、私はあなたの意図を理解しています。 – aaronofleonard

+0

私は中かっこをifチェックに加えましたが、同じ結果が得られています。更新されたスクリーンショットを見てください。 –

2

あなただけ使用してチェックすることができます。

if (response.data) 

この確認は次の場合に行われます。

  • 空( "")

  • 未定義

  • のNaN

  • 偽ヌル

  • +0

    こんにちはLucas Costa、私はあなたのお勧めを試み、スクリーンショットを更新しました。あなたにチャンスがあれば、見てください。 –

    +0

    コメントに@jjenzzとして更新されました。 –

    2

    私はあなたがなぜ機能していないのか分かりませんが、あなたは以下を行い、試してみてください。

    if(response && response.data === null && typeof response.data === "object") 
    
    関連する問題