Javascript jsviews-数组元素的更新字段

Javascript jsviews-数组元素的更新字段,javascript,jquery,jsviews,Javascript,Jquery,Jsviews,我对JSView有意见。我想绑定一个元素数组。每个元素都是一个对象。元素是动态添加的。每个元素的一个字段的值根据另一个字段计算。没有每次刷新数组怎么办 js: html: {^{for elements tmpl=“#elementTmpl”/} 我创建了一个示例来说明问题。您可以使用ObserveAll(): 每次元素.value1更改时,您都会更新计算属性元素.value2和模型.recent 我用以下内容更新了你的小提琴: $.templates('#tmpl').link('#con

我对JSView有意见。我想绑定一个元素数组。每个元素都是一个对象。元素是动态添加的。每个元素的一个字段的值根据另一个字段计算。没有每次刷新数组怎么办

js:

html:


{^{for elements tmpl=“#elementTmpl”/}

我创建了一个示例来说明问题。

您可以使用
ObserveAll()

每次
元素.value1
更改时,您都会更新计算属性
元素.value2
模型.recent

我用以下内容更新了你的小提琴:

$.templates('#tmpl').link('#container', model)
    .on('click', '#addElement', function () {
        $.observable(model.elements).insert({});
    });
$.observable(model).observeAll(function(e, eventArgs) {
    if (eventArgs.change === "set" && eventArgs.path === "value1") {
        var element = e.target;
        $.observable(element).setProperty('value2', 'Value1 is ' + element.value1);
        $.observable(model).setProperty('recent', element.value1);
    }
});

谢谢你的快速回复!
<div id="container"></div>

<script id="tmpl" type="text/x-jsrender">
    <input id="addElement" type="button" value="add new element"/>
    <div id="box">
        {^{for elements tmpl="#elementTmpl"/}}
    </div>
    <input type="text" data-link="recent" />
</script>

<script id="elementTmpl" type="text/x-jsrender">
    <div>
        <input name="input1" data-link="value1" />
        <input name="input2" data-link="value2" />
    </div>
</script>
$.templates('#tmpl').link('#container', model)
    .on('click', '#addElement', function () {
        $.observable(model.elements).insert({});
    });
$.observable(model).observeAll(function(e, eventArgs) {
    if (eventArgs.change === "set" && eventArgs.path === "value1") {
        var element = e.target;
        $.observable(element).setProperty('value2', 'Value1 is ' + element.value1);
        $.observable(model).setProperty('recent', element.value1);
    }
});