2014-04-02 91 views
1

我加入一个类型验证了我的模型,例如:帆JS模式“阵列”式的验证和多种选择

selectList: { 
     type: 'array' 
    } 

选择列表的输入来自HTML表单的多重选择。

问题 当用户仅选择零个或一个选项,在零的情况下,我们得到了一个未定义/对象类型,在1个选择的情况下,我们得到“字符串”类型。将它保存到selectList将失败。

解决此问题的最佳解决方案是什么? 有什么想法?使用beforeValidation听起来不是一个很好的解决方案。

回答

0

为什么不使用beforeValidation?

beforeValidation: function(obj, cb) { 
    if (typeof obj.field === "array") { 
     cb(null, obj); 
    } 

    if (typeof obj.field === "string") 
    { 
     var temp = obj.field ; 
     obj.field = new Array(); 
     obj.field [0] = temp; 
    } 
    cb(null, obj); 
} 
+0

我有相反的问题。我希望我的API能够接受一个字符串或一个字符串数组,如果它是一个数组,它将连接(是一种特定的方式)字符串。我想将模型中的类型设置为'string',然后使用'beforeValidate'来进行连接,但传递给'beforeValidate'的值(例如,在您的示例中为'obj.field')已经被转换为字符串。我错过了什么吗?帆0.10.0-RC5 – CWSpear