似乎没有考虑我的Coffeescript验证:
class PokerRange extends Backbone.Model
defaults:
id:0
cards:[[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12]]
validate: (attributes) ->
if attributes.id<0 then "id should be positive"
window.firstrange= new PokerRange id:5
console.log window.firstrange.toJSON()
window.firstrange.set("id",-4)
console.log window.firstrange.toJSON()
结果如下:
Object {id: 5, cards: Array[13]}
Object {id: -4, cards: Array[13]}
答案 0 :(得分:2)
我发现了原因,我只是忘了将set方法作为选项传递{validate:true}
class PokerRange extends Backbone.Model
defaults:
id:0
cards:[[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12],[0..12]]
validate: (attributes) ->
if attributes.id<0 then "id should be positive"
window.firstrange= new PokerRange id:5
window.firstrange.on "invalid", (model, error) -> alert(error)
console.log window.firstrange.toJSON()
window.firstrange.set {id:-4}, {validate:true}
console.log window.firstrange.toJSON()