Я использую Knockoutjs 3.0.0 и Knockoutjs-Validate, в большинстве случаев они работают хорошо. Теперь у меня проблема, когда я пытаюсь проверить частичную модель просмотра. Как это:Knockoutjs только проверять класс chind
function DataViewModel() {
var self = this;
self.username = ko.observable("").extend({ required: {message:"User name is required!" }});
self.password = ko.observable().extend({ required: {message:"Password is required!" }});
self.login = function() {
if (self.isValid()) {
self.errors.showAllMessages();
return false;
}
$("#loginform").submit();
};
}
и у меня также есть страница ViewModel которые контролируют атрибут страницы.
function PageViewModel(){
var self=this;
self.contentheader=ko.observable("Login");
self.usernamelabel = ko.observable("User Name");
self.passwordlabel = ko.observable("Password");
}
Я создаю ViewModel, как это:
function ViewModel()
{
var self=this;
self.data= ko.validatedObservable(new DataViewModel());
self.page= new PageViewModel();
}
я, наконец, связываются с KO уаг Vm = новый ViewModel(); ko.applyBindings (vm);
Почему я делаю такую программу, как это: в DataViewModel, я храню данные, которые будут проходить или загружаться с сервера, модель просмотра страницы Я управляю этой страницей, я должен сделать проверку на DataViewModel, когда пользователь отправляет данные на сервер. Но это не работает, я видел ошибку повышения модели KO, например,
TypeError: obsv is undefined
Любой может помочь?
Это работает. Но у меня другая проблема. Когда имя пользователя и пароль восстанавливаются из браузера, функция knockoutjs-validate не работает. – Ericyu67
@ Ericyu67 Не могли бы вы уточнить (возможно, опубликовать некоторый код, который восстанавливает эти значения полей при редактировании исходного вопроса)? – rwisch45
Я проверил ваш пример кода, он работает только в том случае, если я нахожу какое-то значение. Но когда я пытаюсь скопировать/вставить значение в текстовое поле, он не может активировать проверку. Может быть, здесь не место, чтобы задать этот вопрос. – Ericyu67