2014-05-14 54 views
-2

我使用Backbone.Marionette開發一個應用程序,我使用RequireJs加載文件時,我決定使用嚴格的模式我的應用程序,所以我宣佈Requirejs與Backbonejs - 「使用嚴格的」扔錯誤

「使用嚴格「的功能。但我得到這樣的錯誤:

ught TypeError: Cannot set property 'App' of undefined 

當我從功能中刪除「使用嚴格」它一切正常。

這裏是我的功能:

define(["jQuery", "underscore", "backbone", "marionette","routes"], 
    function($, _, Backbone, Marionette, Routes){ 

     "use strict"; 

     console.log(Marionette); 

     this.App = new Marionette.Application(); 

     this.App.addInitializer(function(){ 
      var Route = new Routes(); 
      Backbone.history.start(); 
     }); 

     this.App.start(); 


}); 

這裏有什麼問題?如何解決這個問題或如何將嚴格模式應用於我的功能?

+0

當RequireJS調用該函數時,它看起來像'this'是'undefined'。嘗試使用'window.App',或者乾脆使用'App'來實現你正在尋找的東西。 – Sharadh

+0

我試圖調用應用程序,但不起作用。它通過調用windows.App工作;但我更喜歡調用應用程序還是this.App - 我怎麼能得到它? – 3gwebtrain

+0

這將有助於瞭解您的動機 - 您想要在哪裏訪問應用程序? – Sharadh

回答

0

如果您將此添加到您的主或配置文件,然後可以使用該窗口作爲依賴項。

define('window',[],function(){return window;});