Knockout js, как найти проверочный переключатель в списке радиокнопки

У меня есть список контактных данных. Пользователь может выбирать, добавлять и удалять эти контактные данные (см. Скрипт JSfiddle), когда пользователь нажимает кнопку добавления, новый элемент модели контакта будет добавлен в DOM.

var ContactModel = {

 ContactData : [
 { 'ContactKey': 12323, 'Ref': 'Reference-Marsh', 'ContactName': 'Marsh Global' },
 { 'ContactKey': 44234, 'Ref': 'Reference-AON', 'ContactName': 'AON Co' },
 { 'ContactKey': 65343, 'Ref': 'Reference-Europ', 'ContactName': 'Europ Ltd' },
 { 'ContactKey': 78555, 'Ref': 'Reference-ECB', 'ContactName': 'ECB Tradings' },
 { 'ContactKey': 24242, 'Ref': 'Reference-Jersey', 'ContactName': 'New Jersey Inc' }
 ],

 Items: ko.observableArray(),

 MainContacts : ko.observable(),

 AddItem: function () {
 ContactModel.Items.push(new Contact([]));
 },
 Remove: function (line) {
 ContactModel.Items.remove(line);

 }
 }

см. остальную часть кода в скрипке

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

когда пользователь изменяет список выбора, объект выбранного объекта, имеющий свойства ContactKey, Ref и ContactName, в соответствии с тем, что другие наблюдаемые обновляются.

но если выбран переключатель, будет обновлен только основной контакт. Я достиг этого, используя чистый jquery. но значение привязки значения значка значка значения путают для меня. может ли кто-нибудь помочь мне разобраться в этом вопросе.

1 ответ

Если я правильно понял ваши намерения, мои модификации к скрипке представят вам решение, в основном:

  • Я дал имена переключателям, чтобы они были эксклюзивными.
  • Я перевел логику с точки зрения на ischecked которая теперь вычислена.
  • Я изменил логику привязки для основного контакта.
  • Некоторые небольшие твики, которые можно увидеть в скрипке.

Здесь скрипка: http://jsfiddle.net/QmQy9/4/

Если что-то отличается от того, что вы намеревались, просто дайте мне знать.

С уважением.

licensed under cc by-sa 3.0 with attribution.