Javascript 敲除过滤器json数据

Javascript 敲除过滤器json数据,javascript,jquery,json,knockout.js,Javascript,Jquery,Json,Knockout.js,关于在敲除时分离json数据,我有一些问题 下面是json数据的示例 var data = [{"ID":"84F37B0F28374A2B813650079DF45697","LogicalName":"TM1.Application","Name":"Key Performance Indicators (KPIs)","ColumnValue":"blabla."}, {"ID":"C49C30D66E834344B57C18E8693B2A55","LogicalName":"TM1.C

关于在敲除时分离json数据,我有一些问题

下面是json数据的示例

var data = [{"ID":"84F37B0F28374A2B813650079DF45697","LogicalName":"TM1.Application","Name":"Key Performance Indicators (KPIs)","ColumnValue":"blabla."},
{"ID":"C49C30D66E834344B57C18E8693B2A55","LogicalName":"TM1.Cube","Name":"KPI","ColumnValue":"KPI"},
{"ID":"45A8A5F9074644728DFE7901626212E6","LogicalName":"TM1.Process","Name":"Data.KPI.LoadKPIFromAssets","ColumnValue":"blabla."}];
是否可以将数据分离到不同的模型中。最后,我希望能够基于logicalName分离href

例如,下面的示例中,cubesingle和Cube将取决于返回的LogicalName

<td data-bind="text: $data.LogicalName"></td>
<td><a data-bind="attr: { href: './Documentation/Model Documentation/cubesingle.html?api==Cube('+$data.ID()+')' }, text: $data.Name"></a></td>                                
<td data-bind="text: $data.ColumnValue"></td>

这是JSFIDLE

我可以用击倒foreach。但我想知道在去淘汰赛之前是否可以先分割数据


谢谢

这种方法怎么样

Html页面

 <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <div id="container1"></div>
        <div id="container2">
            <table>
                <!-- ko foreach: myItems -->
                <tr>
                    <td data-bind="text: $data.LogicalName"></td>
                    <td>
                        <a data-bind="attr: { href: './Documentation/ModelDocumentation/cubesingle.html?api==Cube('+$data.ID()+')' }, text: $data.Name"></a>
                    </td>
                    <td data-bind="text: $data.ColumnValue"></td>
                </tr>
                <!-- /ko -->
            </table>
        </div>


        <script src="js/jquery.js"></script>
        <script src="js/knockout.js"></script>
        <script src="js/DataFunction.js"></script>
        <script src="js/MasterViewModel.js"></script>

    </body>
    </html>
然后在主视图模型在DataFunction.js中注册为单独的视图模型之后

var masterVM;
var secondVM;
$(document).ready(function() {

    if ($.isEmptyObject(masterVM)) {
        masterVM= new MasterViewmodel();
        ko.applyBindings(masterVM, document.getElementById("container1"));
    }
    if ($.isEmptyObject(secondVM)) {
        secondVM= new SecondViewmodel();
        ko.applyBindings(secondVM, document.getElementById("container2"));
        //Here we are registering a new view model for container2 div
    }

});
SecondVeiwModel.js

function SecondViewmodel()
{
    var self = this;

    self.SetJasonData = function(data){
        //Do what ever you want to do with jason data here
        ko.utils.arrayForEach(data, function(itemData) {
              self.myItems.push(new item (
              itemData.ID ,
              itemData.LogicalName ,
              itemData.Name ,
              itemData.ColumnValue 
           ));
        });
    }
}

希望这将帮助您解决问题。

答案仍然没有将数据分离到单独的模型中。您是否使用多视图模型?是的,我使用的是多视图模型。请查看编辑后的答案。注册2个viewmodels并在它们之间共享数据。希望这对您有用。
function SecondViewmodel()
{
    var self = this;

    self.SetJasonData = function(data){
        //Do what ever you want to do with jason data here
        ko.utils.arrayForEach(data, function(itemData) {
              self.myItems.push(new item (
              itemData.ID ,
              itemData.LogicalName ,
              itemData.Name ,
              itemData.ColumnValue 
           ));
        });
    }
}