Wykonuję własne, niestandardowe sprawdzenia poprawności w niektórych polach, więc tylko niektóre wartości są akceptowane (w zależności od pola), a pozostałe odrzucane. Chciałbym napisać funkcję "filtrującą", która sprawdzi, jaki atrybut zwany jest sprawdzaniem poprawności, a następnie decyduje, jakie słowa dany atrybut może użyć. Więc model będzie wyglądać mniej więcej tak:Jak sprawdzić, który atrybut nazywa się zasadą walidacji linii wodnej?
module.exports = {
types: {
filter: function(attribute) {
if (attribute === 'number') {
switch(attribute.value) {
case 'one':
return true;
case 'two':
return true;
default:
return false;
}
} else if (attribute === 'color') {
switch(attribute.value) {
case 'red':
return true;
case 'blue':
return true;
default:
return false;
}
}
},
},
attributes: {
number: {
type: 'string',
required: true,
filter: true
},
color: {
type: 'string',
required: true,
filter: true
}
}
};
oczywiście w normalnym zachowaniem Sails.js „attribute
” nie byłoby atrybut, ale wartość atrybutu. (I attribute.value
był tylko przykładem, co oznacza, że chcę tam wartość atrybutu).
Chcę, aby attribute
był faktycznym atrybutem, który wywołał regułę sprawdzania poprawności. Czy to możliwe z żaglami? To znaczy, mógłbym napisać funkcję dla każdego pola w modelu, ale byłoby miło mieć funkcję, która pasowałaby do wszystkich (mam ich wielu).
Dzięki.