2013-05-27 65 views
0

我點擊一個url並獲取json數據,這個數據我想綁定到不同的div。從URL
JSON數據樣本是將JSON數據從url綁定到div使用敲除js

[{"CompanyCode":"17023928","LastTradedPrice":"19,849.65","Symbol":"NSE"},{"CompanyCode":"17023929","LastTradedPrice":"6,021.25","Symbol":"NIFTY"}] 
在這個

我有不同的符號數據和我有兩個不同的div相同名稱symbol.I希望這些數據綁定DIV。
DIV格式

<div id="nse" > 
<div id="companyCode"></div> 
<div id="TradePrice"></div> 
</div> 
<div id="nifty" > 
    <div id="companyCode"></div> 
    <div id="TradePrice"></div> 
</div> 

爲NSE我想NSE JSON綁定和漂亮的,漂亮的數據綁定

回答

1

使用未來建設

<!-- ko foreach: myData --> 
<!-- ko if : $data.Symbol === "NSE" --> 
<div id="nse" > 
<span>This is NSE</span> 
<div id="companyCode" data-bind="text : $data.CompanyCode"></div> 
<div id="TradePrice" data-bind="text : $data.LastTradedPrice"></div> 
</div> 
<!-- /ko --> 
<!-- ko if : $data.Symbol === "NIFTY" --> 
<div id="nifty" > 
<span>This is NIFTY</span> 
<div id="companyCode" data-bind="text : $data.CompanyCode"></div> 
<div id="TradePrice" data-bind="text : $data.LastTradedPrice"></div> 
</div> 
<!-- /ko --> 
<!-- /ko --> 

JSFiddle DEMO

,或者你可以使用knockout-swith-case插件

編輯:

$.getJSON(url, function (data) { 
    self.myData =ko.observableArray(data); 
}) 

你應該定義myData作爲viewModel一部分了Ajax請求例如

self.myData =ko.observableArray(data); 
$.getJSON(url, function (data) { 
    self.myData(data); 
}) 
+0

這是GR8答案... 。爲我工作,但我有一個查詢,如果我通過靜態JSON OBJ它爲我工作。 live var DATA = [{「CompanyCode」:「17023928」,「LastTradedPrice」:「19,849.65」,「Symbol」:「NSE」},{「CompanyCode」:「17023929」,「LastTradedPrice」:「6,021.25」 「:」NIFTY「}]。如果我想從url加載它,它說Uncaught錯誤:無法解析綁定,消息:ReferenceError:myData未定義。我從url獲取數據的代碼就像這樣在視圖模型中,我寫了$ .getJSON(url,function(data){ self.myData = ko.observableArray(data); }); – vishalg

+0

@vishalg答案已更新 – Ilya

+0

在我說數據沒有被定義之前,我嘗試了這個......然後我定義了這個var data =''。現在它說無法使用'in'運算符在file:///android_asset/www/js/knockout-2.2.0rc.debug.js:1046中搜索'length'......我應該怎麼做... – vishalg

0

的試試這個..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Testing</title> 
    <script src="scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $(document).ready(function() { 
      var A = [{ "CompanyCode": "111", "LastTradedPrice": "11,1", "Symbol": "NSE" }, { "CompanyCode": "567", "LastTradedPrice": "8568", "Symbol": "NIFTY" }, { "CompanyCode": "gjgh78", "LastTradedPrice": "56856", "Symbol": "NSE" }, { "CompanyCode": "ghj65g", "LastTradedPrice": "56675", "Symbol": "NIFTY"}]; 
      $('#tblNSE,tblNIFTY').empty(); 
      $.each(A, function(key, value) { 
       if (value.Symbol == 'NSE') { 
        $('#tblNSE').append('<tr><td>Company Code : </td><td>' + value.CompanyCode + '</td><td>Last Traded Price : </td><td>' + value.LastTradedPrice + '</tr>'); 
       } else { 
        $('#tblNIFTY').append('<tr><td>Company Code : </td><td>' + value.CompanyCode + '</td><td>Last Traded Price : </td><td>' + value.LastTradedPrice + '</tr>'); 
       } 
      }); 
     }); 

    </script> 
</head> 
<body> 
    <div id="nse"> 
     <label> 
      NSE 
     </label> 
     <table id="tblNSE"> 
     </table> 
    </div> 
    <br /> 
    <div id="nifty"> 
     <label> 
      NIFTY 
     </label> 
     <table id="tblNIFTY"> 
     </table> 
    </div> 
</body> 
</html>