【发布时间】:2016-03-11 11:22:12
【问题描述】:
我需要的是显示来自 properties 的嵌套数据和来自我的 couchdb json 数据的 implements 的嵌套数据。
我设法使用 JavaScript 来隐藏和显示我选择的选定 div,但它只在第一行显示它们。其他行不受影响。也许我的 JavaScript 有问题,或者我的 foreach 来自淘汰赛的位置不正确。
如果选择的选项是属性,则在其上显示属性数据。
Converter: 8
Description: ""
EnumTypeName: ""
Name: "MainFile"
ValidationType: 4
对于工具:
TypeName: "ITSR2.Bricks.Access.IAccessBrick"
顺便说一句,不是同时:P。
我搜索并查看了淘汰赛的文档,但找不到任何东西。
这是我的索引:
<ul class="collapsible" data-collapsible="accordion" data-bind="foreach:myfield">
<li data-bind="with: value">
<div class="collapsible-header"><i class="material-icons">filter_drama</i>
<p data-bind="text: Name"></p>
</div>
<div class="collapsible-body">
<p data-bind="text: TypeName"></p>
<p data-bind="text: AssemblyName"></p>
<div class="row">
<form class="col s12">
<div class="row">
<div class="col s6 m6">
<div class="col s6 m6">
<label>Select</label>
<select class="browser-default" onchange="showDiv(this)">
<option value="" disabled="" selected="">Choose your option</option>
<option value="Properties">Properties</option>
<option value="Implements">Implements</option>
</select>
</div><!-- end col s6 -->
<div class="col s6 m6" >
<div id="Properties" style="display: none;">
<p>Properties</p>
<ul data-bind="foreach: Properties.Properties">
<b>Name:</b> <span data-bind="text: $data.Name"></span></br>
<b> Validation Type: </b><span data-bind="text: $data.ValidationType"></span></br>
</ul>
</div>
<div id="Implements" style="display: none;">
<p>Implements</p>
<ul data-bind="foreach: Implements.Interfaces">
<b>Name:</b> <span data-bind="text: $data.TypeName"></span></br>
</ul>
</div>
</div><!-- end col s6 -->
</div>
</div>
</div>
</div>
</li>
</ul>
</div>
我的 Main.Js 文件与 viewModel 以及我如何检索我的 数据:
function showDiv(elem){
if(elem.value == 'Properties'){
document.getElementById('Properties').style.display = "block";
document.getElementById('Implements').style.display = "none";
}
else if(elem.value == 'Implements'){
document.getElementById('Properties').style.display = "none";
document.getElementById('Implements').style.display = "block";
}
else{
document.getElementById('Properties').style.display = "none";
document.getElementById('Implements').style.display = "none";
}
}
function ViewModel() {
var self = this;
self.myfield = ko.observableArray([]);
}
var db = new PouchDB('http://localhost:5984/helloworld');
var vm = new ViewModel();
db.query("bricksetup/docs").then(function(result) {
var data = result;
console.log(data);
vm.myfield(data.rows);
//data.rows.forEach(function(row){
//vm.data.push(row.value)
// })
//vm.myfield(data.rows[3].value.Name);
});
ko.applyBindings(vm);
我的数据在控制台上的显示截图:
我创建了 2 个 Div 以使用我的 javascript 显示它们
任何帮助表示赞赏
【问题讨论】:
-
不清楚你在问什么。请您通读一下这个问题,看看您是否可以改进它。
标签: javascript jquery knockout.js