3

Вот мой jsfiddle для иллюстрации: http://jsfiddle.net/hawaii/gN6CT/10/список Нокаут связывания с флажком и нажмите обрабатывать

У меня есть список объектов JSON, что я хочу, чтобы связать в мкл с помощью шаблонов Jquery, в каждой Li У меня есть флажок для каждого элемента вместе с деталями. Я так хочу, чтобы работать это:

Когда пользователь нажимает на флажок, элемент будет обновлен в выбранный список (получил эту работу)

Когда пользователь нажимает на детали предметов, пункт, будет выбран, и я покажу все детали справа. Вот почему я помещаю элементы в элемент.

Как вы можете видеть из скрипки, он не работает так, как я хочу, чтобы он работал, щелчок привязки вызывается даже при первом применении режима viewModel, и когда я нажимаю на этот флажок, он вызывает событие click как Что ж.

Можете ли вы нокаутировать гуру помочь мне в этом, пожалуйста. Благодаря

ответ

7

Я вижу несколько мелких вещей:

1- вы не должны использовать как checked и value связывания в том же элементе. В привязке value будут прикреплены обработчики событий, а также привязка checked. В этом случае вы просто хотите установить атрибут value и не обрабатывать какие-либо события, так что вы можете сделать: checked:$parent.checkedPeople, attr: { value: Id }

2- привязка кликов ожидает ссылки на функцию, а не на результат функции, являющейся казнены. Итак, вы проходили мимо: click: $parent.selectPerson(Id()). Это выполнит функцию во время привязки и попытается привязать ее к результату (что было бы неэффективно, если бы результат не был фактически функцией). Альтернативой было бы сделать: click: function() { $parent.selectPerson(Id()); }. Тем не менее, уродливо иметь анонимные функции в разметке, поэтому лучше сделать выбор: click: $parent.selectPerson. Текущий $data будет передан в качестве первого аргумента, и вы можете прочитать его Id.

Вот обновленная скрипка: http://jsfiddle.net/rniemeyer/gN6CT/11/

+1

Благодаря Нимейер, очень хороший ответ – tuanvt

+1

я работаю над другой проблемой, но только врезаться в проблему вы определить в пункте № 1. Благодаря! –