Backbone.jsモデル検証の仕組みを理解しようとしていますが、奇妙な矛盾があります。私のアプリのある場所では、validate
メソッドが期待通りに呼び出されています。しかし、別の場所では、Backbone.jsは{ silent: true }
オブジェクトをバリデーターに渡しているように見えます。Backbone.jsモデルのバリデーションメソッドが起動しない
問題を説明するjsFiddleです。 validate
メソッドを呼び出す必要があります。コピーボタンをクリックするか値が変わると、コードをステップ実行すると_validate
関数が{ silent: true }
オプションに渡されていることが明らかです。
私には何が欠けていますか?
更新:ここで起こっていたことが分かります。私はこのjsFiddleを元々作成しました。これは実際にはこの質問とは逆の問題でした。私は空のモデルをコレクションに追加しようとしていましたが、検証は発砲していました。私がFiddleを作ったとき、それは私のアプリが働きたがっているように働いた。空のモデルが追加されたときに検証は実行されませんでした。私はその違いを理解できませんでした。
私は自分のアプリケーションでBackbone.js 0.9.0を使用し、jsFiddleではバージョン0.9.1を使用していました。 Jeremyは、0.9.1でバリデーションを変更して、アプリで動作させたいようにしました(GitHubのthis issueを参照)。謎解き。
だから新しいアイテムが生成され、何もそれに設定されていない時はいつでも...それは検証する必要があり
ジェレミーはあなたが行うことを示唆していますか? – JayC
うん。私は、この例ではあまり意味がないことを知っています。これは簡単なシナリオです。私のアプリの部分では、そのプロパティがすべてnullに設定されていても、新しいモデルがコレクションに追加されるたびに 'validate'が呼び出されます。 –