Ember:模型初始值为null还是空字符串?

时间:2013-08-09 15:50:23

标签: ember.js ember-data

我对新模型的初始化值感到困惑。

创建新记录时,似乎所有属性都将“ null ”作为值。

只要在文本字段中键入内容(绑定到模型),然后删除键入的值(因此再次为空文本字段),属性的值就会变为 emptystring

这是预期的行为吗?

REST API的不同之处是它们是否收到null或“”......

1 个答案:

答案 0 :(得分:3)

如果您的属性为DS.attr('string'),那么这是正确的。 如果字符串为null或为空,则无关紧要,这只表示文本不存在。在编程语言中思考你会发现null,因为在访问方法时会收到错误。但是在业务规则中,如果字符串为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
}

关于创建记录。创建它时,值为null。但是当绑定到文本字段时,例如:

{{input type="text" valueBinding="field"}} 

你有这种关系:

model.field <-> textfield.value

当您在model.field中设置内容时,它将与文本字段同步,反之亦然。但是在编辑文本字段的情况下,值将始终是一个字符串,这是清除文本字段时收到空字符串而不是null的原因。