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);
これは望ましい結果をもたらしますが、より良い方法はありますか?
ありがとう