私は Require.js と Backbone を使用しており、次のような Backbone ルーター モジュールを使用しています。
define([
"views/global",
"views/project/edit",
"views/project/list",
], function(GlobalView, edit, list){
return Backbone.Router.extend({
routes: {
"projects/:action/" : "projectsAction",
},
projectsAction : function(action) {
/* .... lots of code cut out here .... */
/* Create and render the action specified */
this.subView = new eval(action+"()").render();
}
});
});
これは一例です。projectAction から多くのセットアップ コードを削除しました。
URL:/projects/list
で projectAction を実行し、action
param =list
を指定してlist
から、Require.js 関数からモジュールを呼び出します。でやっているeval()
のですが、何か良い方法はないでしょうか?
基本的に、Javascript では、変数を別の変数名で参照できますeval()
か?
短いバージョンは次のようになると思います。
var name = "Math.random";
name(); // = 0.34343....
なしでeval()
?