我已经使用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);
这可以得到理想的结果但有更好的方法吗?
由于
答案 0 :(得分:2)
尝试这样的事情:
<div data-bind="text: $data['@id']"></div>