Chciałbym pętli przez tablicę, które zdefiniowałem w moim JavaScript i wyświetlić listę przycisków opcji. Mój kod, który nie działa obecnie, i to w sposób następujący (także na jsfiddle):Jak wyrenderować tablicę jako listę przycisków opcji?
<div data-bind="foreach: options" >
<div>
<input type="radio" name="optionsGroup" data-bind="checked: selected" />
<span data-bind="text: label"></span>
</div>
</div>
var optionsList = [
{"value": "a","label": "apple"},
{"value": "b","label": "banana"},
{"value": "c","label": "carrot"}
];
function viewModel() {
var self = this;
self.options = optionsList;
self.selected = ko.observable("a");
self.selected.subscribe(function(newValue) {
alert("new value is " + newValue);
});
}
ko.applyBindings(new viewModel());
Jeśli moja tablica jest częścią html to działa dobrze, to zobaczyć (lub jsfiddle):
<div>
<input type="radio" name="optionsGroup" value="a" data-bind="checked: selected" />Apple
</div>
<div>
<input type="radio" name="optionsGroup" value="b" data-bind="checked: selected" />Banana
</div>
<div>
<input type="radio" name="optionsGroup" value="c" data-bind="checked: selected" />Carrot
</div>
<div data-bind="text: selected">
</div>
function viewModel() {
var self = this;
self.selected = ko.observable("a");
self.selected.subscribe(function(newValue) {
alert("new value is " + newValue);
});
}
ko.applyBindings(new viewModel());
dostałem to do pracy poprzez generowanie wszystkich html w moim JavaScript i mieć to działa za pomocą pól wyboru, ale jestem zakłopotany generowania grupę radiobuttons pomocą iterato foreach r.
Czy ktoś dostał przykład jak mój pierwszy do pracy?
pewnością możesz wymyślić bardziej informacyjny tytuł. –
Warto zauważyć, że nie potrzebujesz 'var self = this' w swoim viewModelu. Usuń tę linię i zmień wszystkie 'self's na' this'. Zakres jest w porządku bez. – ruffin