2012-04-25 126 views
0

我有一個Backbone視圖作爲requirejs模塊。問題是requirejs在視圖被初始化之前加載http://localhost/remote/script/here.js。是否因爲腳本不在requirejs模塊中?RequireJS在視圖初始化之前加載腳本

define([ 
    'jquery', 
    'undescore', 
    'backbone', 
    'http://localhost/remote/script/here' 
], function($, _, Backbone, Luajs){ 
    var View = Backbone.View.extend({ 
     initialize : function(options) { 
     }, 
     render : function() { 
      this.$el.html('<p>my view</p>') 
      return this; 
     } 
    }); 

    return View; 
}); 

回答

1

你作爲第一個參數define數組是的視圖的depedencies。所以是的,它在View之前被加載和解析。 另請注意,除非您使用主幹和下劃線的修改版本,否則它們不符合AMD標準。你將需要用一個插件來包裝它們以正確加載它們。

+0

我使用主幹和下劃線的修改版本。爲了加載異步我的腳本,我必須將它們包裝在一個define()中? – chchrist 2012-04-25 15:39:34

+0

define需求參數中的模塊異步加載。當它們被加載時,定義中的函數被調用。 – ggozad 2012-04-25 16:26:33

+0

嗯,所以我無法控制何時加載它們? – chchrist 2012-04-25 16:31:59

0

您試圖在加載模塊後定義視圖Backbone。 您可以在RequireJS的define()方法中執行此操作。該函數的數組包含定義模塊依賴關係的參數。