2013-05-27 34 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>