2013-09-21 29 views
0

我正在使用DOJO 1.8.3,每次都打破我的代碼。我不斷收到parser.parser錯誤。Dojo 1.8.3 Amd風格太嚴格

幫我理解這一點:如果我使用require(["dojo/some-module"],如果我使用require加載一次模塊,那麼我們不應該再次使用require來加載相同的模塊,但如果我這樣做,事情不起作用。我應該只使用parser.parser()一次嗎?請解釋。

+1

燦你請將你的代碼發佈到[jsfiddle](http://jsfiddle.net/)? – Bucket

+0

是的,代碼示例會有所幫助。 – Darien

回答

1

該模塊將在由require定義的閉包中定義。因此,這是合法的:

require(['dojo/some-module'], function(someModule) { 
    someModule.someFunction(); //inside the closure scope 
}); 

但是,這並不:

require(['dojo/some-module'], function(someModule) { 
    // stuff 
}); 

someModule.someFunction(); //outside the closure scope 

所以,如果你需要使用parser.parse(),您需要將您的require回調函數中使用它:

require(['dojo/parser'], function(parser) { 
    parser.parse(); 
});