2015-09-04 160 views
0

我得到驗證日誌「即使這也是工作」,如果我在if語句中加入日誌,我也會得到。它似乎並沒有解僱this.on('無效')事件。任何原因?驗證骨幹沒有觸發

var Todo = Backbone.Model.extend({ 
    defaults: { 
     title: '', 
     completed: false 
    }, 
    validate: function(attrs){ 
     console.log("IS THIS EVEN WORKING"); 
     if(attrs.title == '' || !attrs.title){ 
      return "ya gone done messed it up"; 
     } 
    }, 
    initialize: function(){ 
     console.log('todo model created'), 
     /*this.on('change:title', function(){ 
      console.log(this.get('title') + 'values have changed'); 
     });*/ 
     this.on("invalid", function(model, error){ 
      console.log(error); 
     }) 
    } 
}); 


var todo2 = new Todo({ 
    completed:true 
}); 

todo2.set('completed', false, {validate:true}); 

console.log(todo2.get('completed')); 
+0

你有幾個語法錯誤在你的初始化方法,應該分號而不是逗號後你的'this.on'你缺少一個分號。 http://jsbin.com/dutijivono/edit?html,js,console,output?hl=zh-CN&idit=output – Jack

+0

我應該看到逗號/分號事物(oops),但是修復(這些修復)並沒有讓我獲得我期望的日誌,這是從驗證返回。 – pwhitt

+0

你看過我鏈接到的jsbin嗎?它似乎在那裏工作。 – Jack

回答

0

從驗證方法返回一些早期版本的骨幹(0.9.9之前)的觸發error事件,而不是invalid。除此之外,你還有一些語法錯誤,但是這不應該阻止它在大多數瀏覽器中工作。

Jsbin