2017-08-10 30 views
0

这是我目前的ViewModel无线电的动态绑定检查可观察到的名称

Shortconfig = { 
    configa = ko.observable(''); 
    configb = ko.observable(''); 
    ... 
    configN = ko.observable(''); 
} 
config = ko.observableArray ([ 
    configA = { 
    options : [ { 'text':'Option1', 'value': 'O1' }, 
      { 'text':'Option2', 'value': 'O2' }, 
      .... 
      { 'text':'OptionN', 'value': 'ON' } 
      ], 
    image : 'imageconfiga.jpg', 
    fieldname : Shortconfig.configa 
    }, 

    configb = { 
    options : [ { 'text':'Option1', 'value': 'O1' }, 
      { 'text':'Option2', 'value': 'O2' }, 
      .... 
      { 'text':'OptionN', 'value': 'ON' } 
      ], 
    image : 'imageconfiga.jpg', 
    fieldname : Shortconfig.configb 
    }, 
    .... 
confign = { 
    options : [ { 'text':'Option1', 'value': 'O1' }, 
      { 'text':'Option2', 'value': 'O2' }, 
      .... 
      { 'text':'OptionN', 'value': 'ON' } 
      ], 
    image : 'imageconfiga.jpg', 
    fieldname : Shortconfig.confign 
    } 
]); 
换句话说,我有一系列的选项组

; 从那我可以很容易地生成我需要使用一个单一模板的所有单选按钮,并根据需要使用它作为div来生成我需要的单选按钮组。

我的问题是,每个组单选按钮必须绑定到不同的字段中shortconfig

configa单选按钮必须有一个数据绑定=“值:$ root.Shortconfig.configa”和configb电台必须有一个data-bind =“value:$ root.Shortconfig.configb”等等。

我试着用在每个配置的字段名条目,但我惨遭失败,并没有发现我怎么能做到这一点,因为我一直没能找到

1,如果它是可能的,

2-我应该使用什么语法,

我只能在模板中对此进行硬编码;所以目前有30多组选项,我最终只用了30多个模板。

所以我的问题是可能的,我该怎么写呢?

希望我可以理解。

预先感谢您的时间

迪迪埃

回答

2

见工作小提琴:https://jsfiddle.net/y4hskdpu/1/

var _Shortconfig = function() { 
    var self = this; 
    self.configa = ko.observable(''); 
    self.configb = ko.observable(''); 
    self.configN = ko.observable(''); 
} 

var Shortconfig = new _Shortconfig(); 

然后,这是访问:

fieldname: Shortconfig.configa 
+0

非常感谢tyler_mitchell抽出时间,这工作正常。我的数据模型实际上比较复杂一些,并且使用了一个模板,我需要找到内部循环的父级,这似乎不起作用。所以知道有这种可能性,我把字段名移到了内部数组中,现在它可以成为一种享受,再见30多个模板!非常感谢 – Didiergm

+0

事实上,它似乎只是$ parent的语法导致问题;在foreach模式下使用'as'参数的模板,我能够从最内层的数组中删除firlname,从而节省了大量的重复。 – Didiergm