林有點困惑你的措辭,但我想你想檢查它是否不是一個空字符串?並制定出它的可能性undefined..if這樣,那麼這是你想做的事..
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;
}
}
}
,如果你只想驗證屬性之一,你應該寫你的驗證功能適應選項相應
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 2012-04-16 20:25:27
當然,如果你將一個額外的標誌傳遞給validate函數,該函數指定你想要驗證哪一個......通常,如果沒有任何東西被傳遞,那麼你會想要驗證所有東西,然後只根據標誌指定一個。 – RGB 2012-04-16 20:28:03
我不確定您的問題是否滿足您的請求 – RGB 2012-04-16 20:28:30