mysql データベースからの JSON 応答で設定されるモデルがあります。モデル データは、データベース内の boolean/tinyint フィールドに true または false で設定され、1
orが使用されます0
。
私の見解では、アンダースコアの付いたブール値をチェックするバインディングがあります_.isBoolean
。 もちろん、モデルがデータを受け取ると、true または false ではなく、1
またはが設定され、チェックは失敗します。0
_.isBoolean
1
mysql からの JSON 応答を、またはの代わりにブール値の true または false 値に正しく設定する方法はありますか。または、できれば、フェッチ時に (ビューがレンダリングされる前に) モデルを更新して、 1 または 0 プロパティに基づいてまたは を0
キャストする方法はありますか。true
false
例えば、私のモデルのデータは、{"isChecked":"1"}
必要なときに{"isChecked":true}
ご提案がありましたら、ぜひよろしくお願いいたします。
ベストアンサー1
必要なのは を使用して をstring
に変換し、 を使用して結果をブール値に変換することだけです。int
+
!!
var response = {"isChecked":"1"};
response.isChecked = !!+response.isChecked
この操作は次のparse
メソッドで実行できます。
parse: function (response) {
response.isChecked = !!+response.isChecked;
return response;
}
アップデート: 7 年経った今、私はNumber(string)
変換の方がエレガントだと感じています。また、オブジェクトを変更するのは最良のアイデアではありません。そうは言っても:
parse: function (response) {
return Object.assign({}, response, {
isChecked: !!Number(response.isChecked), // OR
isChecked: Boolean(Number(response.isChecked))
});
}