我对新模型的初始化值感到困惑。
创建新记录时,似乎所有属性都具有“ null ”作为值。
只要您在文本字段(绑定到模型)中键入内容,然后删除键入的值(因此又是一个空文本字段),属性的值就会变为emptystring。
这是预期的行为吗?
REST API 是否接收 null 或 "" ...
我对新模型的初始化值感到困惑。
创建新记录时,似乎所有属性都具有“ null ”作为值。
只要您在文本字段(绑定到模型)中键入内容,然后删除键入的值(因此又是一个空文本字段),属性的值就会变为emptystring。
这是预期的行为吗?
REST API 是否接收 null 或 "" ...
如果您的属性是DS.attr('string')
,那么这是正确的。字符串是空还是空都没有关系,这只是表示文本不存在。用编程语言思考你会意识到 null,因为你在访问方法时会收到错误。但是在业务规则中,字符串是空还是空都没有关系,所以这是一个常见的模式,例如:
if (name == null || name.length == 0) {
// name is missing, prompt the user ...
}
这是一种罕见的情况:
if (name == null) {
// some logic here
} else if(name == "") {
// other logic here
}
关于创纪录。创建它时,值为空。但是当绑定到文本字段时,例如:
{{input type="text" valueBinding="field"}}
你有这样的关系:
model.field <-> textfield.value
当您在 中设置某些内容时model.field
,它将与文本字段同步,反之亦然。但是在编辑文本字段的情况下,值将始终是一个字符串,这就是您在清除文本字段时收到一个空字符串而不是 null 的原因。