Javascript 敲除过滤器json数据
关于在敲除时分离json数据,我有一些问题 下面是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
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
));
});
}
}