Chr*_*s M 69 javascript jquery backbone.js
我有一个模型,它使用来自mysql数据库的JSON响应进行设置.模型数据使用true或false设置为数据库中的boolean/tinyint字段,该字段使用1或0.
在我看来,我有一个绑定,检查带有下划线的布尔值_.isBoolean.当然,当我的模型接收数据时,它被设置为1或者0不是true或false,并且_.isBoolean检查失败.
无论如何要么正确地让我的来自mysql的JSON响应是一个布尔值true或false值而不是1或者0,或者最好是有一种方法让我的模型在获取时(在视图呈现之前)自我更新true或者false基于它的1或0属性?
例如我的模型的数据看起来就像{"isChecked":"1"}我需要的那样{"isChecked":true}
非常感谢你提出的任何建议!
Vit*_*huk 152
所有你需要的是转换string为intwith +并将结果转换为boolean !!:
var response = {"isChecked":"1"};
response.isChecked = !!+response.isChecked
Run Code Online (Sandbox Code Playgroud)
您可以在parse方法中执行此操作:
parse : function (response) {
response.isChecked = !!+response.isChecked;
return response;
}
Run Code Online (Sandbox Code Playgroud)
dav*_*ave 65
使用双倍而不是:
!!1 = true;
!!0 = false;
obj.isChecked = !!parseInt(obj.isChecked);
Run Code Online (Sandbox Code Playgroud)
bma*_*pin 33
这是另一个选项,它更长但可能更具可读性:
Boolean(Number("0")); // false
Boolean(Number("1")); // true
Run Code Online (Sandbox Code Playgroud)
Som*_*ica 11
您可以将属性的比较分配给 "1"
obj["isChecked"] = (obj["isChecked"]==="1");
Run Code Online (Sandbox Code Playgroud)
这仅计算String的值"1".其他变量也会变得虚假,就像实际的变量一样typeof number.(即obj["isChecked"]=1)
如果你想成为oriscrimate "1"或1,你可以使用:
obj["isChecked"] = (obj["isChecked"]=="1");
Run Code Online (Sandbox Code Playgroud)
console.log(obj["isChecked"]==="1"); // true
console.log(obj["isChecked"]===1); // false
console.log(obj["isChecked"]==1); // true
console.log(obj["isChecked"]==="0"); // false
console.log(obj["isChecked"]==="Elephant"); // false
Run Code Online (Sandbox Code Playgroud)
PHP中的相同概念
$obj["isChecked"] = ($obj["isChecked"] == "1");
Run Code Online (Sandbox Code Playgroud)
适用于JavaScript的上述运算符限制.
'double not'也有效.当人们第一次阅读它时会让人感到困惑,但它在两种语言中都适用于整数/数字类型值.但它在JavaScript中不适用于字符串类型值,因为它们总是评估为true:
!!"1"; //true
!!"0"; //true
!!1; //true
!!0; //false
!!parseInt("0",10); // false
Run Code Online (Sandbox Code Playgroud)
echo !!"1"; //true
echo !!"0"; //false
echo !!1; //true
echo !!0; //false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78581 次 |
| 最近记录: |