Webアプリケーションでブール演算で異常な問題が発生しました。私は、とtrue
とfalse
については0
と応答するサービスを持っています。私が呼ぶのREST API(内部1)、これだけ出力送信:サーバーから上記の出力に基づいてREST APIの値が0または1の場合、型キャストから真偽値が返されます。
GET /stuff/id/5
0
GET /stuff/id/7
1
を、私はそれを作る確認するために、フロントエンドにトグルスイッチを使用しますスイッチをオンまたはオフにします。それは作るコード:
$(this).find(".toggle").toggles({
"on": requestContent
});
は、私は時々、1
と0
ブールtrueまたはfalseとして解釈されない可能性があることを理解しないので、私は彼らがtrue
とfalse
に変換取得する強制的に!!
を使用することを計画しました。
$(this).find(".toggle").toggles({
"on": !!requestContent
});
しかし、それでもまだ、私の狼狽に、それは正しい方法よりも、 ONの位置にあるすべてのスイッチを示します。どうにかして1
と0
の両方の値に対しては、どちらもtrue
に変換されています。あなたが見ることができるように
$(function() {
// Mimicking the HTTP Response.
var states = ["1", "0", "0", "1", "1"];
// This loop loops through all the values and sets the state of the switch.
$('.toggle').each(function (i) {
$(this).toggles({
"on": !!states[i]
});
});
});
body {background-color: #f5f5f5;}
ul, li {margin: 0; padding: 0; list-style: none;}
ul {width: 150px; margin: auto; background-color: #fff; padding: 10px; border-radius: 3px; border: 1px solid #eee;}
ul li {padding: 10px;}
ul li span,
ul li .toggle {width: 50px; display: inline-block; vertical-align: middle;}
ul li span {width: 75px; line-height: 1;}
<link rel="stylesheet" href="https://cdn.rawgit.com/simontabor/jquery-toggles/master/css/toggles-full.css" />
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script src="https://cdn.rawgit.com/simontabor/jquery-toggles/master/toggles.min.js"></script>
<ul>
<li>
<span>Item 1</span>
<div class="toggle toggle-light"></div>
</li>
<li>
<span>Item 2</span>
<div class="toggle toggle-light"></div>
</li>
<li>
<span>Item 3</span>
<div class="toggle toggle-light"></div>
</li>
<li>
<span>Item 4</span>
<div class="toggle toggle-light"></div>
</li>
<li>
<span>Item 5</span>
<div class="toggle toggle-light"></div>
</li>
</ul>
は、すべての起こり:
は、私も正確に問題を複製し、ここでサーバー呼び出しのモックバージョンと私のフロントエンドを作成しようとしていますさらに!!0
はtrue
を返します。これをどうすれば解決できますか?これの背後にある謎は何ですか?
ニースと良い説明 – BNN