あなたの言葉では少し混乱していますが、最初に空の文字列ではないかどうかを確認したいと思いますか?そしてまた、あなただけの属性のいずれかを検証したい場合、あなたはあなたの検証関数を記述する必要があり
validate: function(attrs) {
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
if (typeof(attrs.mystring) != "undefined"){
if (!attrs.mystring){
return -1;
}
}
}
...そう、これはあなたがしたいと思うものですundefined..ifそれがあるという可能性をうまくオプションに対応するために、それに応じて
validate: function(attrs, option) {
if (!option){
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
if (!attrs.mystring){
return -1;
}
}else{
switch(option){
case("string"):
if (!attrs.mystring){
return -1;
}
break;
case("number"):
// Number
if (attrs.minimum) {
if (isNaN(attrs.minimum)) {
return -1;
}
}
if (attrs.maximum) {
if (isNaN(attrs.maximum)) {
return -1;
}
}
break;
}
}
}
これを行うには多くの方法がありますが、これはおそらく最も効率的な大爆笑されますが、あなたの例を使用して、それが仕事をします。
も、これは本当に言うあたりBACKBONE.JS問題ではありません...しかし、一般的なJS
出典
2012-04-16 20:15:42
RGB
したがって、いくつかの属性のチェックを実行する方法はありません?実際の検証を実行する前に、各属性の未定義の値をチェックする必要がありますか? – Jack
確かに、どちらを検証するかを指定するvalidate関数に追加のフラグを渡すと、何も渡されない場合はすべてを検証し、その後はフラグに基づいて指定された場合のみ検証します。 – RGB
あなたの質問に完全な答えがありません – RGB