Knockout.js 敲除-绑定到单个集合项

Knockout.js 敲除-绑定到单个集合项,knockout.js,Knockout.js,我有一个可观察到的文化特定对象的集合。需要与主编辑屏幕分开编辑/显示不变项 问题是-我可以对集合中的单个项目进行双向绑定吗 更为复杂的UI/VIE模型的简化版本可在以下网站获得: 我在视图模型中尝试了computed writable属性,但它没有检测到集合中的不变项何时更改 您的意见将不胜感激。代码如下所示: var ItemDescription = function () { var me = this; me.CultureInvariantId = ko.obser

我有一个可观察到的文化特定对象的集合。需要与主编辑屏幕分开编辑/显示不变项

问题是-我可以对集合中的单个项目进行双向绑定吗

更为复杂的UI/VIE模型的简化版本可在以下网站获得:

我在视图模型中尝试了computed writable属性,但它没有检测到集合中的不变项何时更改

您的意见将不胜感激。代码如下所示:

var ItemDescription = function () {
    var me = this;

    me.CultureInvariantId = ko.observable(0);
    me.CultureFormat = ko.observable('');
    me.Description = ko.observable('');
    me.IsInvariant = ko.observable(false);
};

function viewModel()
    {
      var me = this;
      me.Name = ko.observableArray();   
      me.InvariantName = ko.observable('');  




}
    function Initialize()
{
   var model = new viewModel();

     var invItemDescription = new ItemDescription();
      invItemDescription.Description('Invariant description');
      invItemDescription.CultureFormat ('');
      invItemDescription.IsInvariant  = true;

       model.Name.push(invItemDescription);

     var usItemDescription = new ItemDescription();
      usItemDescription.Description('USA description');
      usItemDescription.CultureFormat ('en-US');
      usItemDescription.IsInvariant  = false;

    model.Name.push(usItemDescription);

    return model;   

}

      ko.applyBindings(new Initialize());  

如果我理解你想做什么,那么我认为一个不错的选择是创建一个表示不变量
itemsdescription
对象的计算可观察对象。然后,您可以使用带有绑定的
来根据编辑器的属性绑定编辑器

比如:

function viewModel()
    {
      var me = this;
      me.Name = ko.observableArray();  

      me.SelectedName = ko.observable();

      me.InvariantName = ko.computed(function() {
          return ko.utils.arrayFirst(me.Name(), function(name) {
              return name.IsInvariant; 
          });
      });
}
使用如下标记:

<select data-bind="options: Name, optionsText: 'Description', value: SelectedName">
</select>
<div data-bind="with: SelectedName">
   <textarea data-bind="value: Description"> </textarea>    
</div>

Edit Invariant:
<div data-bind="with: InvariantName">
    <input type="input" data-bind="value: Description" />
</div>

编辑不变量:
样本: