我正在使用 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:使用param =/projects/list
运行 projectAction,然后调用 Require.js 函数中的模块。我目前正在使用,但我想知道是否有更好的方法?action
list
list
eval()
基本上,在 Javascript 中,你可以用另一个变量名来引用一个变量,而不使用eval()
?
我想一个更短的版本是,你怎么做:
var name = "Math.random";
name(); // = 0.34343....
没有eval()
?