0

JSON.Netを使用してXMLをJsonに変換し、Knockout.jsを使用してビューにバインドしています。

私が抱えている問題は、XML属性がjsonで表され、接頭辞が@であるということです。これは、Knockout.jsでは不正な文字と見なされます。

私のビューモデルには次のものがあります。

self.titles = ko.computed(function () {
     var str = self.searchForText().toLowerCase();

     return jsonString.AutoPolicy.Policy.filter(function (el) {                           
             return el['@id'].toLowerCase().indexOf(str) == 0;
     });
}, self);

と私のhtml:

    <div id="searchResultsDiv" class="sectionDiv">             
         <div data-bind="foreach: titles">                         
            <div data-bind="text: @id, click: $parent.isSelected, event : { dblclick: $parent.openFileDblClick }"></div>                                                             
         </div>   
    </div>

属性にバインドするにはどうすればよいですか?エスケープキー、またはビューモデルから戻る別の方法はありますか?

編集

ビューモデルを変更して、ノックアウトがバインドできる要素を追加しました。

 // bind a list to json data **NEEDS TO VE ALL TITLES**
 self.titles = ko.computed(function () {
      var str = self.searchForText().toLowerCase();                      
         jsonString.AutoPolicy.Policy['@id']

         return jsonString.AutoPolicy.Policy.filter(function (el) {
            el.id = el['@id'];               
            return el['@id'].toLowerCase().indexOf(str) == 0;
         });
      }, self);

これは望ましい結果をもたらしますが、より良い方法はありますか?

ありがとう

4

1 に答える 1

2

次のようなものを試してください。

<div data-bind="text: $data['@id']"></div>
于 2013-01-09T10:48:56.447 に答える