Попытки получить базовый Нокаут нажмите связывание установить, согласно примеру ниже:Нокаут нажмите связывание странного поведения
<button id="btn-a" class="btn" data-bind="css: {'btn-primary':mode() == 'manual'}, click: $root.mode('manual')">Manual</button>
<button id="btn-b" class="btn" data-bind="css: {'btn-primary':mode() == 'automatic'}, click: $root.mode('automatic')">Automatic</button>
<label>MODE: </label><span data-bind="text:mode()"></span>
<script>
$(function() {
var TestModel = function() {
var self = this;
this.mode = ko.observable('manual');
};
var testModel = new TestModel();
window.testModel = testModel;
ko.applyBindings(testModel);
});
Fiddle: http://jsfiddle.net/aq85wk65/
Однако, бег на два вопрос:
- Привязка приводит к тому, что значение
mode()
начинается с «автоматический», хотя мы явно инициализируем его «вручную». - Всякий раз, когда кнопка нажата, то Консоль JavaScript показывает:
Uncaught TypeError: h.apply is not a function
Обычно я соглашаюсь с вами полностью, но в этом случае он устанавливает значение наблюдаемого из элемента управления. Если у него было несколько вариантов, то определение уникального сеттера для каждого было бы немного. – dfperry