我喜欢使用jsview绑定在我的页面上显示两个摘要数据。UI将类似于截图。

用户可以从列表中添加/删除该用户,它将影响“人员编号”的值,用户可以在文本框中编辑整数值,总值将显示在“总量”中。
是。我设法让它运转起来..。请看我的密码。http://jsfiddle.net/michaelsync/eqhkzv3t/3/
但我认为它非常丑陋,尤其是:下面的代码。
function observeAmounts(){
people.forEach(function (person){
$.observe(person, 'amount', function(e) {
var amount =0;
people.forEach(function(person){
amount += parseInt(person.amount);
});
$('#output2').html('Total Amount: ' + amount);
});
});
}
observeAmounts();
$.observe(people, function(e) {
var l = $.map(people, function(n, i) { return i; }).length;
$('#output1').html('Total No. of People: ' + l);
observeAmounts();
});嗯,我还在阅读教程和jsview的源代码/测试。但对JsViews来说,我几乎是个新闻。在我的当前代码中,我继续循环数组以计算总量和人数。我认为我可能能够注册一个助手类,但是仍然需要循环'people‘数组来计算这个值。
因此,我相信在JsViews中可能有更好的方法。由于JsViews站点建议我们在这里发布问题,而JsViews的作者也在这里,所以我决定在这里发布它,以便提前完成这些摘要数据。(是的,您也可以在这里查看我的测试代码http://jsfiddle.net/michaelsync/eqhkzv3t/3/ )
如有任何建议,将不胜感激。谢谢!
发布于 2014-09-08 19:07:37
我在这里创建了一个更新版本的您的jsfiddle:http://jsfiddle.net/BorisMoore/wch601L9/
您错过的最重要的帮助是使用observeAll:
http://www.jsviews.com/#observeAll
$.observable(people).observeAll(totalAmount);
我还为其他事情添加了几种不同的方法:
声明性事件绑定:
<td><button data-link="{on ~remove}">Remove</button></td>顶层数据链接以显示数组的长度:
<span id="getLength" data-link="length"></span>和
$("#getLength").link(true, people);(另请参阅此示例:http://www.jsviews.com/#samples/editable/toplevel-for,以获得顶级数据链接)
https://stackoverflow.com/questions/25721180
复制相似问题