我有链接,我想根据链接做不同的事情。因此我有一个数据结构:
var data = [{"name":"foo", "onClick":"baz()"}, {"name":"bar", "onClick":"bam()"}];
目前,在视图中我有一个函数运行,它接受项目并执行eval(item.onClick),并且可以工作,只是感觉就像一个安全漏洞。 我可以在渲染视图时将onClick放入html中,但这感觉不对。
有谁知道这样做的方法?
答案 0 :(得分:3)
您可以在数据中嵌入函数
var data = [{"name":"foo", "onClick":baz}, {"name":"bar", "onClick":bam}];
item.onClick();
您可以查看here了解更多有用的信息
答案 1 :(得分:3)
骨干视图有delegateEvents function:
var MyView = Backbone.View.extend({
events: {
"click button[name='foo']": "baz",
"click button[name='bar']": "bam"
},
baz: function(){ ... }
bam: function(){ ... }
答案 2 :(得分:0)
简单 - 即使您没有为函数调用实现对象容器。
function baz(){
....
}
function bam(){
....
}
并且,假设您将此作为JSON回调:
function jsonCallback(data){
/*some code*/
window[data.onClick]();
/* some more code */
}