使用epoxy.js

时间:2015-12-28 22:12:26

标签: javascript backbone.js

我正在尝试使用epoxy.js将一组单选按钮绑定到主干模型。我希望模型使用所选单选按钮的值进行更新,但似乎无法使其正常工作。我正在使用的所有其他字段(文本字段,选择,复选框)按预期工作,只是我遇到问题的单选按钮。

以下简化代码是我目前所拥有的。即使选择不同的单选按钮,模型也会保留默认值。我希望模型中的金额值可以更新为所选单选按钮的值。

型号:

Backbone.Model.extend({
        defaults: {
            amount: ''
        }
}

查看:

Backbone.Epoxy.View.extend({
        bindings: {
            "input[name='amount']:checked": "value:amount"
        }
}

HTML:

<input name="amount" type="radio" value="10">
<input name="amount" type="radio" value="20">
<input name="amount" type="radio" value="30">

4 个答案:

答案 0 :(得分:1)

我的解决方案是使用内联绑定而不是像我最初那样在视图文件中使用。不解决问题,但至少它是一个解决方案。

答案 1 :(得分:0)

我从未使用过epoxy.js,但我认为常规观点应该很熟悉。您应该为您的观点倾听正确的事件([x,y,z] = sphere(); r = 5; surf( r*x, r*y, r*z+2, 'edgecolor', 'none' ) axis equal, grid off, axis off hold on [x,y,z] = sphere; x = x(15:end,:); y = y(15:end,:); z = z(15:end,:); rx = 4;ry = 4;rz = 8; surf(rx*x,ry*y,rz*z); axis equal; set(gcf, 'Renderer', 'OpenGL'); shading interp, material shiny, lighting phong, lightangle(0, 55) click):

change

答案 2 :(得分:0)

the docs看起来似乎是绑定的第二个参数,这是要注册的事件:

string

答案 3 :(得分:0)

Epoxy为无线电/复选框提供checked绑定处理程序,因此内联绑定将是:

<input name="amount" type="radio" value="10" data-bind="checked:amount">
<input name="amount" type="radio" value="20" data-bind="checked:amount">
<input name="amount" type="radio" value="30" data-bind="checked:amount">

我没有尝试通过视图文件执行此操作,但我相信相同的方法是为每个无线电设备提供唯一的ID,并在绑定列表中包含所有这些ID,例如。

Backbone.Epoxy.View.extend({
    bindings: {
        "#amount10Radio": "checked:amount",
        "#amount20Radio": "checked:amount",
        "#amount30Radio": "checked:amount"
    }
}