Ember:在空字符串上将模型设置为未定义
Ember: Setting model to undefined on empty strings
模板上有一个表单,当按下提交时,它会触发控制器中的一个动作。当用户键入内容并将其删除时,绑定的 属性 将是一个空字符串,而不是未定义的。我用下面的方法解决了这个问题,但它看起来太老套了,而且无法表达。有什么东西可以将模型属性上的空字符串替换为未定义的吗?尝试在模型 class 中设置它也不起作用,因为我无法让计算属性在其自身上工作。即 user: function(){ return undefined if ""}
Here is my controller which handles the form submit:
Controller:
actions:{
save: function(){
if(this.get('user.name')===""){
this.set('user.name',undefined);
}
if(this.get('user.phone')===""){
this.set('user.phone',undefined);
}
if(this.get('user.email')===""){
this.set('user.email',undefined);
}
}
// Process data
}
如果值为空字符串,您可以将 Ember 对象的 get
覆盖为 return undefined。
var Model = Em.Object.extend({
get: function(path) {
var value = this._super(path);
return value || undefined;
}
});
var model = Model.create({
name: 'Blessan',
address: ''
});
alert(model.get('name'));
alert(model.get('address'));
模板上有一个表单,当按下提交时,它会触发控制器中的一个动作。当用户键入内容并将其删除时,绑定的 属性 将是一个空字符串,而不是未定义的。我用下面的方法解决了这个问题,但它看起来太老套了,而且无法表达。有什么东西可以将模型属性上的空字符串替换为未定义的吗?尝试在模型 class 中设置它也不起作用,因为我无法让计算属性在其自身上工作。即 user: function(){ return undefined if ""}
Here is my controller which handles the form submit:
Controller:
actions:{
save: function(){
if(this.get('user.name')===""){
this.set('user.name',undefined);
}
if(this.get('user.phone')===""){
this.set('user.phone',undefined);
}
if(this.get('user.email')===""){
this.set('user.email',undefined);
}
}
// Process data
}
如果值为空字符串,您可以将 Ember 对象的 get
覆盖为 return undefined。
var Model = Em.Object.extend({
get: function(path) {
var value = this._super(path);
return value || undefined;
}
});
var model = Model.create({
name: 'Blessan',
address: ''
});
alert(model.get('name'));
alert(model.get('address'));