对象和DOM中的数据绑定

时间:2016-07-21 17:56:38

标签: javascript oop data-binding

这是我想要建立的(贷款利息计算器)的极端简化。我有三个领域。每当一个场被改变时,我希望其他场改变以满足这个代数方程:

A = B * C
B = A / C
C = A / B

我想我想将这些值绑定到一个对象,但我不确定如何解决这个问题。这是我到目前为止的设置:

var binder = {
  a: 2,
  b: 1,
  c: 1
};

$('input[type=number]').on('change', function() {
  var id = $(this).attr('id');
  var value = id.val();
  binder[id] = Number($(this).val());    
});

此时我已将对象中的相应键设置为当前活动字段的值。我可以运行一堆case()语句,如:

switch( id ) {
  case a :
    binder.b = $(this).val()/binder.c;
    binder.c = $(this).val()/binder.b;
    break;  
  etc.
}

我还需要更新字段值。这似乎是不可持续的,特别是当字段数量增加时,计算变得更加复杂。我的问题是双重的:

如何绑定字段'对象的值?

如何将对象的值彼此绑定?

1 个答案:

答案 0 :(得分:0)

@dbugger评论knockoutjs非常适合这个



composer.json

var model = {
  a: ko.observable(2),
  b: ko.observable(1),
  c: ko.observable(1)
};

ko.applyBindings(model);