Как удалить расширитель из существующего наблюдаемого? Я использую плагин проверки нокаута и устанавливаю наблюдаемый при необходимости с помощью расширителя: myObservable.extend({required:true}); Можно ли удалить расширитель после его добавления? Ответ 1 Вы можете удалить все свойства привязки, связанные с проверкой, из наблюдаемого, которые были добавлены проверкой ko с вызовом: myObservable.extend({validatable: false}); Или, если вы хотите удалить только необходимую проверку, вы можете удалить ее из коллекции rules: myObservable.rules.remove(function (item) { return item.rule == "required"; }); } Демо JSFiddle. Однако проверка ko поддерживает условную проверку, поэтому вы можете указать какое-то условие, когда валидация должна работать, возможно, это то, что вам нужно myObservable.extend({ required: { message: "Some message", onlyIf: function () { return //some condition; } } }); Ответ 2 nemesv работает с небольшой коррекцией опечатки - функция в вызове remove (...) должна возвращать логическое значение (т.е. '==' вместо '='): myObservable.rules.remove(function(item) { return item.rule == "required"; }); Демо: JSFiddle
Ответ 1 Вы можете удалить все свойства привязки, связанные с проверкой, из наблюдаемого, которые были добавлены проверкой ko с вызовом: myObservable.extend({validatable: false}); Или, если вы хотите удалить только необходимую проверку, вы можете удалить ее из коллекции rules: myObservable.rules.remove(function (item) { return item.rule == "required"; }); } Демо JSFiddle. Однако проверка ko поддерживает условную проверку, поэтому вы можете указать какое-то условие, когда валидация должна работать, возможно, это то, что вам нужно myObservable.extend({ required: { message: "Some message", onlyIf: function () { return //some condition; } } });
Ответ 2 nemesv работает с небольшой коррекцией опечатки - функция в вызове remove (...) должна возвращать логическое значение (т.е. '==' вместо '='): myObservable.rules.remove(function(item) { return item.rule == "required"; }); Демо: JSFiddle