2012-07-26 71 views
0

我剛剛開始使用茉莉花與maven。我有茉莉花的工作,但由於某種原因,它無法找到我的骨幹模型。我有JavaScript src目錄指向包含我的Backbone.js模型的文件夾。在我的JavaScript測試目錄中,我有一個簡單的測試,例如:茉莉花沒有找到Backbone.js模型

describe('ToDo Model',function() 
{ 
    it('Test',function() { 
     var todo = new ToDo(); 
    }); 
}); 

但是我一直沒有定義ToDo。我是否必須在我的骨幹模型文件或其他任何內容中寫入我的測試?謝謝。

+0

需要更多的信息來回答這個問題。你如何定義ToDo模型?在瀏覽器中打開您的規格,並確保您無法在開發者控制檯中訪問ToDo。 – clem 2012-07-26 18:42:40

回答

2

ToDo也必須位於全局名稱空間中。嘗試在您的Chrome/Firefox的控制檯鍵入此:

window.ToDo

如果返回未定義的,那麼這就是問題所在!

1

它通常是一個很好的做法,定義一個全局命名空間爲您的應用程序,例如:

window.Application = { 
    Models: {}, 
    Views: {}, 
    Collections: {} 
} 

// etc. 

然後,我喜歡這樣定義模型:

(function (Models) { 
    Models.ToDo = Backbone.Models.extend({ 
    // etc... 
    }); 
})(Application.Models); 

的命名空間在這裏ISN」 t必要的,但在文件頂部看到Models是一個很好的視覺提示,我想。

+0

是的,我有我的ToDo模型在它自己的文件裏面沒有定義真正的名稱空間,只是var ToDo = Backbone.model.extend ...我認爲這會把它放到全局名稱空間中。當我訪問使用該模型的普通頁面時,我可以從窗口訪問ToDo。 – 2012-07-26 19:00:31

+0

然後,這聽起來像你的茉莉花配置問題。 – clem 2012-07-26 19:01:25