我有一个 Observable Array,在其中使用映射插件我在其上映射了来自服务器的 json。json结构是这样的:
Data: [{
NumberOfRooms: 5,
Category: 1
},
{
TruckDoorsNo: 5,
Category: 2
}]
此 json 包含有关不同类型对象的数据,并根据类别值确定在我的模板中显示和不显示的内容:
<div data-bind="foreach: Buildings">
<!-- ko if: Category === 1 -->
<input type="text" data-bind="value: NumberOfRooms" />
<select data-bind="value: Category">
<option value="1">Category1</option>
<option value="2">Category2</option>
</select>
<!-- /ko -->
<!-- ko if: Category === 2 -->
<input type="text" data-bind="value: TruckDoorsNo" />
<select data-bind="value: Category">
<option value="1">Category1</option>
<option value="2">Category2</option>
</select>
<!-- /ko -->
</div>
问题是每个项目的类别都可以从已解析的模板中更改,并且我们希望在发生此更改时更新模板。
我没有这个 ViewModel 的淘汰模型,我直接从服务器映射 json。
如何做到这一点?我试图使类别属性可观察,但这无济于事。
我必须补充一点,我刚开始使用 Knockout,我不知道它的全部功能。