我有一个模型,我从json数据映射,基本上包含一个类别列表,并在每个类别中,是一个控件列表...所以,在我的UI中,我有一个面板,列出了类别当用户点击它时,我将整个类别推送到(在加载时)空的observable以在另一个面板中渲染... click函数似乎正在工作但是在我的第二列中没有使用foreach渲染声明。任何帮助,将不胜感激。我的json数据有点冗长,所以最好在这里引用我的小提琴:
但这是我如何试图预见孩子,我的语法不好吗?
<div class="left">Click any of the below categories to see its controls...
<ul data-bind="foreach: Categories">
<li data-bind="click: $parent.catClick">
<span data-bind="text: Text"></span>
</li>
</ul>
</div>
<div class="right">Controls within the category clicked...
<ul data-bind="foreach: Curr.Ranges">
<li>
<span data-bind="text: FieldName" />
</li>
</ul>
</div>
我应该采取更好的方式吗?基本上,我希望我的右侧面板一次只显示一个集合。我现在要做的就是显示字段名,但什么都没有显示出来。任何帮助将不胜感激....
答案 0 :(得分:1)
看起来好像你想让Curr成为一个可观察的,而不是一个observableArray,并且你没有正确地分配它:
viewModel.Curr = ko.observable();
// Inside your click method
viewModel.Curr(category);
你还需要添加Ranges的虚拟属性,否则在初始的applyBindings上爆炸会爆炸:
viewModel.Curr = ko.observable({ Ranges: [] });