我的JSON对象和observablarray像:

self.myComplexsObject= ko.observableArray([{
    "TupleArray": [{
    "OptInfo": {
        "Version": "B",
        "Name": "csk_profile"
    },
        "Parameter": [{
        "Value": "1",
        "Name":"min SampleCopunt"
    }]
},
             {
    "OptInfo": {
        "Version": "A",
        "Name": "Dml_profile"
    },
        "Parameter": [{
        "Value": "2",
        "Name":"min SampleCopunt"
    }]
}]
}]);


并且我想像下面那样访问“名称和版本”:但是它不起作用可以请我帮忙吗?

<div data-bind='template: { foreach: myComplexsObject,
                            beforeRemove: hideElement,
                            afterAdd: showElement }'>
   <div data-bind="foreach: OptInfo">
      <div data-bind='attr: { "class": "complexObject" + Name,"title":Name},
                      text: Version'></div>
   </div>
</div>

最佳答案

由于JSON的结构,您无法以这种方式访问​​“ OptInfo”。您正在将一个对象的数组传递给observableArray。这是该对象的结构:

{
"TupleArray":[
 {
    "OptInfo":{
       "Version":"B",
       "Name":"csk_profile"
    },
    "Parameter":[
       {
          "Value":"1",
          "Name":"min SampleCopunt"
       }
    ]
 },
 {
    "OptInfo":{
       "Version":"A",
       "Name":"Dml_profile"
    },
    "Parameter":[
       {
          "Value":"2",
          "Name":"min SampleCopunt"
       }
    ]
 }
]
}


因此,该对象(在每个循环中成为您的上下文)没有“ OptInfo”属性。该对象仅包含两个对象的数组(“ TupleArray”)。

关于javascript - 嵌套有 knockout 绑定(bind)的foreach?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18019558/

10-12 12:29