私の検証機能は、以下のコードで呼ばなっていないと呼ばれ得ていない: -バックボーン検証機能
var Vehicle = Backbone.Model.extend({
color: 'green',
validate: function (attrs) {
var validColors = ['white', 'red', 'blue', 'yellow'];
var colorIsValid = function (attrs) {
if (!attrs.color) return true;
return _.contains(validColors, attrs.color);
}
if(!colorIsValid(attrs)) {
return "color must be one of: " +validColors.join(",");
}
}
});
var car = new Vehicle();
car.on('error', function (model, error) {
console.log(error);
});
console.log(car.get('color'));
car.set('color', 'muave');
フィドル http://jsfiddle.net/vineet85/Fa8jr/5/
検証関数が呼び出さ取得されていない理由を誰かが私に言うことができますを参照してください。 ?
フィドルはまだあなたが起こることを期待している何.. http://jsfiddle.net/vineet85/Fa8jr/6/ – Vineet
動作していませんか?私はあなたのvalidateメソッドが呼び出されると思います。エラーイベントがトリガーされていないため、コンソールにエラーが書き込まれていない理由が不思議です。更新された回答をご覧ください。 – Steve
@Vineet、あなたのフィドルがまだ動作しないと言って、エラーメッセージ( "*色は白、赤、青、黄*のいずれかでなければなりません)はコンソールログに出力されません。私はあなたのフィドルで、スティーブの答えのように* invalid *の代わりにevent * error *を使用していることに気付きました。 – Tom