coffeescript
AMDとAMDの組み合わせに取り組んでいrequire.js
ます。
問題は、 によってロードされた各モジュールの値を返さなければならないrequire.js
ことです。しかし.. coffeescriptは私を助けて追加します: (function() {
and }).call(this);
. これは私のコードを吹き飛ばします。
main.js
require.config( {
paths: {
'backbone': 'libs/AMDbackbone-0.5.3',
'underscore': 'libs/underscore-1.2.2',
'text': 'libs/require/text',
'jquery': 'libs/jquery-1.7.1',
},
baseUrl: '/app'
} );
require(
['require', 'backbone', 'jquery', 'underscore' ],
function( require, Backbone, $, _ ) {
// framework loaded
require(
['require', 'app'],
function( require, app) {
return {};
} );
} );
app.js
define( [
'jquery',
'underscore',
'backbone',
'views/gameview',
], function( $, _, Backbone, GameView, ) {
"use strict";
window.app = {};
$(function(){
var app = window.app = _.extend({
views: {
GameView: new GameView
},
//code..
}, window.app);
//code...
return window.app;
} );
そしてコーヒースクリプト:
/views/gameview.coffee
define ["jquery", "underscore", "backbone"], ($, _, Backbone, RankView) ->
"use strict"
GameView = Backbone.View.extend()
GameView
つまり、次のようになります。
/views/gameview.js
(function() {
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
}).call(this);
しかし、私は次のように翻訳したいと思います:
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
これをコンソールで使用するといいでしょう:var GameView = new app.views.GameView;
コンソールで。
coffeescriptコンパイラにそれをさせないようにするにはどうすればよいですか? そのためのフラグか何かがありますか?
繰り返しますが、私は断ち切りたいだけです-それがグローバルかどうかにかかわらず、その背後にあるamdコードはそれほど重要ではありません(function() {
..}).call(this);
ありがとうございました