是否可以以某种方式从服务器返回一些js代码并在不使用eval的情况下执行它?
按照要求,这里是一些示例代码:
服务器(Node.js):
var testFunc = function() {
alert('h1');
};
app.get('/testPack', function(req, res) {
var template = jade.render('h1 hi');
res.send({
template : template,
entity : testFunc.toString(),
data : {
id: "OMG I love this"
}
});
});
客户端:
$(document).ready(function() {
$.ajax({
url: '/testPack',
success: function(data) {
$('body').append($(data.template))
alert(data.data.id);
var entity = eval(data.entity);
entity();
}
})
})
当然,返回的函数称为“entity”的函数不会做这样愚蠢的事情,它将公开返回的小部件的API。
只是为了澄清,我想避免必须单独调用JavaScript。我更喜欢将其与模板和数据捆绑在一起以进行呈现。