这应该是世界上最简单的事情。这是我的viewModel中的一行:
self.trueOrFalse = ko.observableArray(['false', 'true']);
这是我尝试绑定的形式,但最终会有一个空的下拉列表...
<form data-bind="submit: addItem">
<label>Category</label><br/>
<div>
<select data-bind="options:categories, optionsText: 'Name', value: newItem.Category"></select>
</div><br/>
<div class="form-group" data-bind="with: newItem">
<label>Name</label><br/>
<div>
<input type="text" class="form-control" id="inputName" data-bind="value:Name" />
</div>
<label>Description</label><br/>
<div>
<input type="text" rows="3" class="form-control" id="inputDescription" data-bind="value:Description"/>
</div>
<label>Price</label>
<div>
<input type="number" step="any" class="form-control" id="inputPrice" data-bind="value:Price" />
</div>
<label>Vesselizable?</label>
<div>
<select data-bind="options: trueOrFalse"></select>
</div>
</div>
<button type="submit" class="btn btn-default">Add</button>
</form>
第一个选择类别是从API中提取数据并且工作得很好。但是底部的简单部分不会绑定到硬编码数组。
答案 0 :(得分:1)
我可以猜测,因为你只显示了你的viewmodel的一行,但我认为错误可能是一个上下文错误...是newItem observable上的trueOrFalse observableArray吗?
<div class="form-group" data-bind="with: newItem">
...
<label>Vesselizable?</label>
<div>
<select data-bind="options: trueOrFalse"></select>
</div>
...
</div>
由于你的WITH绑定,knockout在newItem上查找trueOrFalse数组,你可能想把它更改为
<select data-bind="options: $parent.trueOrFalse"></select>
甚至
<select data-bind="options: $root.trueOrFalse"></select>
Jamiec在评论中指出,看看控制台......