0

ネストされた配列を含むjson文字列を読み取る際に問題に直面しています。

{
    "invoiceSet": {
        "lines": [
            {
                "line": "Business Partner had two or more interactions in the last 30 days",
                "togState": "true",
                "links": [
                    {
                        "linktxt": "Interaction History",
                        "linkid": "IRHIST"
                    }
                ]
            },
            {
                "line": "Open CRC Complaints Exist",
                "togState": "false",
                "links": [
                    {
                        "linktxt": "Interaction History",
                        "linkid": "IRHIST"
                    }
                ]
            },
            {
                "line": "Open Complaints Exist",
                "togState": "true",
                "links": [
                    {
                        "linktxt": "Interaction History",
                        "linkid": "IRHIST"
                    }
                ]
            },
            {
                "line": "Business Partner is a landlord",
                "togState": "false",
                "links": []
            },
            {
                "line": "Remotes Business Partner",
                "togState": "true",
                "links": [
                    {
                        "linktxt": "Interaction History",
                        "linkid": "IRHIST"
                    }
                ]
            },
            {
                "line": "Recent move has occurred in the last 60 days",
                "togState": "false",
                "links": []
            }
        ]
    }
}

このjsonを文字列で取得するためにajax呼び出しを使用しています

var setJsonText = jQuery.ajax({ url: ajxUrl,
                                            cache: false,
                                            async: false,
                                            type:"POST",
                                            dataType: "html" }).responseText;
var sets = jQuery.parseJSON( setJsonText );

viewModel.invLines(sets.invoiceSet.lines)

そして私のビューモデル

var viewModel = {
           invLines: ko.observableArray([]),
};

HTML

<table width="100%" >
 <tbody data-bind="foreach: invLines" style="width:100%">
  <tr>
   <td data-bind="text: line"></td>
   <td>
    <ul data-bind="foreach:links">
     <li>
      <a><span  data-bind="text:linktxt"></span></a>
     </li>
    </ul>
 </tbody>
</table>

行は正しく印刷されていますが、対応するリンクに問題があります。私が間違っていることを教えてください。

ありがとう、 アンシュル・カイスタ

4

1 に答える 1

0

問題は ajax 呼び出しにある可能性があります。データを HTML として取得し、それを JSON に変換するのはなぜですか? データをJSONとして取得しないのはなぜですか?

とにかく、この jsFiddle はコードが機能していることを示しているため (ajax 呼び出しを除く)、投稿したバインディングはすべて有効に見えます。

http://jsfiddle.net/unklefolk/g9Q9V/3/

これが問題の解決に役立つことを願っています。

于 2012-09-18T09:42:25.007 に答える