Мне нравится отображать две сводные данные на моей странице с помощью привязки jsviews. Пользовательский интерфейс будет примерно таким, как на скриншотах.
Пользователь может добавить/удалить человека из списка, и это повлияет на значение «Количество людей», и пользователь может редактировать целочисленное значение в текстовом поле, а общие значения будут отображаться в «Общая сумма».
Да. Мне удалось заставить его работать. Пожалуйста, посмотрите мой код. http://jsfiddle.net/michaelsync/eqhkzv3t/3/
Но я думаю, что это очень некрасиво, esp: этот код ниже.
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();
});
Ну, я все еще читаю учебники и исходный код/тест jsviews. но я в значительной степени новость для JsViews. В моем текущем коде я продолжаю зацикливать массив, чтобы вычислить общее количество и количество людей. Я думаю, что смогу зарегистрировать вспомогательный класс, но мне все равно придется зацикливать массив «люди» для вычисления значения.
Итак, я считаю, что в JsViews может быть лучший способ. Поскольку сайт JsViews рекомендует нам публиковать вопросы здесь, а автор JsViews также находится здесь, я решил опубликовать его здесь, чтобы получить аванс при выполнении этих сводных данных. (Да, вы также можете просмотреть мой тестовый код здесь http://jsfiddle.net/michaelsync/eqhkzv3t/ 3/а> )
Любой совет будет принят во внимание. Спасибо!