2014-11-12 2 views
0

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

Вот мой взгляд модель

function ViewModel() { 

    var self = this; 
    this.apps = ko.observableArray(@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model))); 

}; 

Вот мои входы

<tbody data-bind="foreach: apps"> 
          <tr> 
           <td style="text-align:center"> 

            <input type="radio" name="apps" data-bind="attr: { value: Id }, checked: MinVersion" /> 


           </td> 
           <td data-bind="text: type"></td> 
           <td data-bind="text: Name"></td> 

          </tr> 

         </tbody> 
+0

Если это логическое значение, то может быть, вы должны использовать флажок, а не радио? Во всяком случае, переключатели имеют различную обработку в нокауте (по сравнению с флажками), см. [Документация] (http://knockoutjs.com/documentation/checked-binding.html), раздел Параметры -> Основной параметр -> Для переключателей –

ответ

1

Если вы используете переключатель по назначению (одно значение, выбранное в то время), то проверяется значение будет должны быть вне коллекции приложений. Если вы пытаетесь использовать его как массив checkbox (0 - много выбранных за раз), то наличие допустимого значения внутри коллекции является подходящим.

Вот рабочий пример динамически сгенерированный массив кнопки радио: http://jsfiddle.net/74ht766s/1/

<div data-bind="foreach: apps"> 
    <input type="radio" name="apps" data-bind="attr: { value: $data}, 
     checked: $parent.selectedVersion,"/> 
    <span data-bind="text: 'Version ' + $data"/> 
    <br/> 
</div> 

var ViewModel = function() { 
    var self = this; 

    self.apps = [1,2,3]; 
    self.selectedVersion = ko.observable(self.apps[0].toString()); 
}; 
Смежные вопросы