1

私はBackbone.jsとrequire.jsを使用してフロントエンドを開発しています.config.jsという名前のファイルを作成して、アプリケーション全体で使用するためのデフォルト値を保存する必要があるまで、すべてがうまくいっています.

以下はconfig.jsファイルのコードです

// Filename: config.js
define([''], function(){        

var baseUrl = "http://localhost:8888/client/",
apiServer = "http://api-server:8888";

return function(type){
    return eval(type);
};

});

私のビューの 1 つで、config.js を定義すると、両方の値にアクセスできます。

var baseUrl = "http://localhost:8888/client/",
apiServer = "http://api-server:8888";

以下のコード行を介して、アプリケーションの *.js ファイル内に配置します

var baseUrl = config('baseUrl');
console.log(baseUrl); //prints out this > http://localhost:8888/client/

ここでの問題は、取得する必要がある値の種類の値を取得するために eval を使用していることです。使用するのが安全な方法ではないことはわかっていますが、誰もが安全な解決策を提案できます

4

2 に答える 2

1

別の解決策として (そして Benjamin のものよりも醜い)、両方の URL をオブジェクトに入れることができます。

define([''], function(){        

    var urls = {
        baseUrl: "http://localhost:8888/client/",
        apiServer: "http://api-server:8888"
    };

    return function(type){
        return urls[type];
    };

});

それでも、単純にオブジェクトをエクスポートする方がはるかにクリーンです。

于 2013-08-22T21:13:08.197 に答える