微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Backbone.js事件绑定.像Jquery中的“代表”一样?

我是骨干的新人.我在Backbone.js中看到,事件绑定:
var PersonView = Backbone.View.extend({
    ....
    events : {
        "click button.btnSay" : "saySomething"
    },saySomething : function(){
        ....
    }
    ...
});

…不需要button.btnSay在调用时就存在,就像Jquery中的“delegate”一样.

现在,问题是,我们可以将html页面中的任何按钮更改为.btnSay(由Firebug等).他们最终得到听众.我们该如何预防呢?

解决方法

它与委托不同,它使用delegate(除非事件没有选择器). Backbone中的事件绑定如下所示:
if (selector === '') {
  $(this.el).bind(eventName,method);
} else {
  $(this.el).delegate(selector,eventName,method);
}

所以它在视图的元素上使用delegate.这至少将事件限制在视图内的元素.

您无法阻止人们在调试器中将元素和事件混淆在一起.他们可以更改HTML,CSS,甚至编辑JavaScript,因此您无法阻止他们在您的页面上造成麻烦.您可以阻止他们在您的服务器上混乱,只是不要信任任何Backbone发送到您的服务器,并验证一切与验证外部世界其他任何东西一样.

基本上,不要浪费你的时间,因为搞错了你的HTML /事件/ JavaScript,一些人用砖头砸碎了自己的脸.让他们自己伤害自己想要的一切.但是通过不信任外部任何东西来保护您的服务器(并且您的服务器甚至不应该信任自己).

原文地址:https://www.jb51.cc/jquery/152244.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐