2013-01-09 101 views
0

我已經使用JSON.Net轉換一些XML到JSON和正在然後使用Knockout.js綁定到視圖前綴JSON對象memebr。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); 

這給了預期的效果,但有沒有更好的辦法?

感謝

回答

2

嘗試這樣:

<div data-bind="text: $data['@id']"></div> 
+0

優秀。這是我正在尋找的;謝謝。 – davy