在主干视图中触发从选择到功能的事件

Triggering an event from a select to a function in a backbone view

本文关键字:选择 功能 事件 视图      更新时间:2023-09-26

我试过四处寻找,但可能还不够精确。所以基本上,我正在编写一个使用backbone.js 的网络应用程序

所以我的问题是,我试图回到一个视图来调用一个函数。

所以我有一个模板,其中包含一个ID为"sel"的select。

我在视图A.中呈现该模板

该select还有一个onchange="callme()"。(我使用jquery change(),这只是为了简单起见)

视图A有函数callme(),但当用户点击它时,控制台会说,callme undefined。

问题是callme()被认为是全局的。A.callme(。

所以。。。。我该怎么办?提前谢谢。

您需要直接从视图订阅事件并在那里处理控制事件。

MyView = Backbone.View.extend({ 
    events: {
        'change select': 'selectHandler'
    },
    selectHandler: function(event) {
       // do my stuff
    }
});

在这种情况下,selectHandler函数中的this将是当前视图的上下文,因为Backbone使用jQuery $.proxy将控制处理程序的执行委派给视图本身。要在处理程序中获取控件实例,您需要使用$(event.target)属性,该属性将返回控件对象。

此外,您不需要onchange属性。

p.S.您的控件应该位于设置为Backbone视图的el属性的控件中。