在Marionette ItemView中访问<select> onChange </select>

时间:2014-07-24 03:50:06

标签: javascript jquery marionette

我有一个像这样的Marionette ItemView:

List.Chart = Backbone.Marionette.ItemView.extend({
    template: "#chart-template",
    className: "block container-fluid first",

    onRender: function () {
      // Do a few things
    },
});

模板中有一个<select id="filter">标记,其中包含一些选项。我想在用户点击它时访问<select>标记的值,并且发生了更改。我是Marionette的新手。我尝试了几种方法,但没有人得到我的价值。感谢。

1 个答案:

答案 0 :(得分:4)

您不希望在木偶视图中覆盖渲染,而应该利用onRender

http://marionettejs.com/docs/marionette.itemview.html#render--onrender-event

就知道用户何时点击或更改输入而言,您将希望利用事件哈希。 http://marionettejs.com/docs/marionette.view.html#viewevents

实际上来自骨干。

所以它看起来像这样:

List.Chart = Backbone.Marionette.ItemView.extend({
    template: "#chart-template",
    className: "block container-fluid first",
    events: {
      "click #filter": "doSomething",
      "change #filter": "doSomething"
    },

    doSomething: function() {}
});

对于额外的积分,您应该干掉事件绑定并利用backbone.marionette免费提供的@ui插值。

List.Chart = Backbone.Marionette.ItemView.extend({
    template: "#chart-template",
    className: "block container-fluid first",
    ui: {
      "filter": "#filter"
    },
    events: {
      "click @ui.filter": "doSomething",
      "change @ui.filter": "doSomething"
    }
});