所以我显示了两个输入字段,用户可以在其中输入信息。我还有另一个按钮"添加"允许用户添加另一组两个输入字段来输入数据。
这是我目前对我所拥有的内容的看法,但我需要添加将输入字段添加到我的viewModel中的功能,以便在用户点击时可用。
我想添加点击添加按钮的功能,如:
self.addName = function(){//return new input fields to user}
在我的html中我会<a href="#" onclick="addName()">
答案 0 :(得分:2)
问题是,您需要在数组中使用observable来绑定多个输入。 你这样做:
<div class="addNames">
<!-- ko foreach: ViewModel.values -->
<div class="fname" >
<input data-bind="value: $data.value" placeholder="Add your fname..." contenteditable/>
</div>
<!-- /ko -->
</div>
<div class="addBtn">
<a data-bind="click: ViewModel.addValue"> Add Name</a>
</div>
和JS:
ViewModel = {
values: ko.observableArray([
{value: ko.observable('initial value')}
]),
addValue: function(){
ViewModel.values.push({ value: ko.observable('')});
ViewModel.values().forEach(function(data){
console.log(data.value());
});
}
}
ko.applyBindings();